Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.16
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
Wikibooks:Szablony
4
1449
553090
553075
2026-08-24T14:12:22Z
Persino
2851
553090
wikitext
text/x-wiki
<noinclude>{{Skrót|'''[[WB:S]]'''}}__NOTOC__<!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści|limit=2}}
Strona ta zawiera spis używanych na Wikibooks '''szablonów''' wraz ze sposobem ich użycia. Szablony to specjalne strony, które mogą być wielokrotnie wstawiane do innych. Wstawienie szablonu odbywa się przez umieszczenie w tekście jego nazwy w podwójnych nawiasach klamrowych: {{Tt|{{s|ek}}}}. Warto zapoznać się również z zasadami tworzenia szablonów na Wikipedii: {{lpr2|Szablony}} i {{lpp2|Tworzenie szablonów}}. Zanim zaczniesz samemu układać szablony, spróbuj modyfikować w swoim podręczniku te już istniejące. Zdobędziesz dzięki temu potrzebne doświadczenie i nauczysz się lepiej wiki-kodu.
== Szablony do wstawiania w artykułach (opis wizualny) ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy wizualne
| spis =
{{SpisTreści|Ogólne|bez przypisów=tak}}
{{SpisTreści|Informacje}}
{{SpisTreści|PrzypisStrona}}
{{SpisTreści|Podręcznikowe}}
{{SpisTreści|Książkowe}}
{{SpisTreści|Tekst|bez przypisów=tak}}
{{SpisTreści|Zawartość}}
{{SpisTreści|Nagłówki}}
{{SpisTreści|Przekierowania}}
{{SpisTreści|Języki}}
{{SpisTreści|Liczby}}
{{SpisTreści|Kategorie}}
{{SpisTreści|Opisy}}
{{SpisTreści|Znaczniki}}
{{SpisTreści|Szablony opływania}}
{{SpisTreści|Stronicowe}}
{{SpisTreści|Kontenerowe}}
{{SpisTreści|Elastyczne}}
{{SpisTreści|Infoboksy/Prolog|3=Infoboksy - Prolog}}
{{SpisTreści|Infoboksy/Tom I|3=Infoboksy - Tom I}}
{{SpisTreści|Infoboksy/Tom II|3=Infoboksy - Tom II|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Tom III|3=Infoboksy - Tom III}}
{{SpisTreści|Infoboksy/Tom IV|3=Infoboksy - Tom IV}}
{{SpisTreści|Infoboksy/Tom V|3=Infoboksy - Tom V}}
{{SpisTreści|Infoboksy/Tom VI|3=Infoboksy - Tom VI}}
{{SpisTreści|Infoboksy/Komponenty|3=Infoboksy - Komponenty|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Komponenty (organizmy żywe)|3=Infoboksy - Komponenty (organizmy żywe)}}
{{SpisTreści|Porządkowe}}
{{SpisTreści|Źródła artykułów}}
{{SpisTreści|Linki}}
{{SpisTreści|Linki inteligentne}}
{{SpisTreści|Do usunięcia}}
{{SpisTreści|Nawigacja}}
{{SpisTreści|Media}}
{{SpisTreści|Grafika}}
{{SpisTreści|Licencjonowanie}}
{{SpisTreści|Techniczne}}
{{SpisTreści|Wikipedysta}}
{{SpisTreści|Dyskusja Wikipedysty}}
{{SpisTreści|MediaWiki}}
{{SpisTreści|Systemowe}}
}}
== Szablony do wstawiania w artykułach (opis tekstowy) ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy opisowe
| spis =
{{SpisTreści|Szablony/Tom I|{{ns:Help}}:Spis treści|Szablony - Tom I}}
{{SpisTreści|Szablony/Tom II|{{ns:Help}}:Spis treści|Szablony - Tom II}}
{{SpisTreści|Szablony/Tom III|{{ns:Help}}:Spis treści|Szablony - Tom III}}
{{SpisTreści|Szablony/Tom IV|{{ns:Help}}:Spis treści|Szablony - Tom IV}}
}}
== Tworzenie szablonów ==
Szablony tworzyć może każdy - wbrew pozorom nie jest to zbyt trudne. Najlepiej popatrz, jak zbudowane i stosowane są inne szablony i wzoruj się na nich. Pamiętaj o [[Wikibooks:Nazewnictwo artykułów#Szablony|Regułach nazewnictwa dla szablonów]].
== Zobacz też ==
* [[w:Wikipedia:Szablon|Wikipedia:Szablony]]
* [{{fullurl:Specjalna:Allpages|from=&namespace=10}} Automatyczna lista wszystkich szablonów]
* [[meta:Help:Magic words|Magic words]] - różne specjalne kody
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Wizualne opisy techniczne szablonów | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}</noinclude>
b4ir2ij5yxbjz594jmuf6gzx8bqoiq9
553091
553090
2026-08-24T14:13:53Z
Persino
2851
553091
wikitext
text/x-wiki
<noinclude>{{Skrót|'''[[WB:S]]'''}}__NOTOC__<!--
-->{{StandardowaStronaStart
| nagłówek = {{Rozdział|Pomoc Wikibooks|Mechanizm MediaWiki - Szablony}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>{{Spis treści|limit=2}}
Strona ta zawiera spis używanych na Wikibooks '''szablonów''' wraz ze sposobem ich użycia. Szablony to specjalne strony, które mogą być wielokrotnie wstawiane do innych. Wstawienie szablonu odbywa się przez umieszczenie w tekście jego nazwy w podwójnych nawiasach klamrowych: {{Tt|{{s|ek}}}}. Warto zapoznać się również z zasadami tworzenia szablonów na Wikipedii: {{lpr2|Szablony}} i {{lpp2|Tworzenie szablonów}}. Zanim zaczniesz samemu układać szablony, spróbuj modyfikować w swoim podręczniku te już istniejące. Zdobędziesz dzięki temu potrzebne doświadczenie i nauczysz się lepiej wiki-kodu.
== Szablony - opis wizualny ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy wizualne
| spis =
{{SpisTreści|Ogólne|bez przypisów=tak}}
{{SpisTreści|Informacje}}
{{SpisTreści|PrzypisStrona}}
{{SpisTreści|Podręcznikowe}}
{{SpisTreści|Książkowe}}
{{SpisTreści|Tekst|bez przypisów=tak}}
{{SpisTreści|Zawartość}}
{{SpisTreści|Nagłówki}}
{{SpisTreści|Przekierowania}}
{{SpisTreści|Języki}}
{{SpisTreści|Liczby}}
{{SpisTreści|Kategorie}}
{{SpisTreści|Opisy}}
{{SpisTreści|Znaczniki}}
{{SpisTreści|Szablony opływania}}
{{SpisTreści|Stronicowe}}
{{SpisTreści|Kontenerowe}}
{{SpisTreści|Elastyczne}}
{{SpisTreści|Infoboksy/Prolog|3=Infoboksy - Prolog}}
{{SpisTreści|Infoboksy/Tom I|3=Infoboksy - Tom I}}
{{SpisTreści|Infoboksy/Tom II|3=Infoboksy - Tom II|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Tom III|3=Infoboksy - Tom III}}
{{SpisTreści|Infoboksy/Tom IV|3=Infoboksy - Tom IV}}
{{SpisTreści|Infoboksy/Tom V|3=Infoboksy - Tom V}}
{{SpisTreści|Infoboksy/Tom VI|3=Infoboksy - Tom VI}}
{{SpisTreści|Infoboksy/Komponenty|3=Infoboksy - Komponenty|bez przypisów=tak}}
{{SpisTreści|Infoboksy/Komponenty (organizmy żywe)|3=Infoboksy - Komponenty (organizmy żywe)}}
{{SpisTreści|Porządkowe}}
{{SpisTreści|Źródła artykułów}}
{{SpisTreści|Linki}}
{{SpisTreści|Linki inteligentne}}
{{SpisTreści|Do usunięcia}}
{{SpisTreści|Nawigacja}}
{{SpisTreści|Media}}
{{SpisTreści|Grafika}}
{{SpisTreści|Licencjonowanie}}
{{SpisTreści|Techniczne}}
{{SpisTreści|Wikipedysta}}
{{SpisTreści|Dyskusja Wikipedysty}}
{{SpisTreści|MediaWiki}}
{{SpisTreści|Systemowe}}
}}
== Szablony - opis tekstowy ==
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów szablonów - tomy opisowe
| spis =
{{SpisTreści|Szablony/Tom I|{{ns:Help}}:Spis treści|Szablony - Tom I}}
{{SpisTreści|Szablony/Tom II|{{ns:Help}}:Spis treści|Szablony - Tom II}}
{{SpisTreści|Szablony/Tom III|{{ns:Help}}:Spis treści|Szablony - Tom III}}
{{SpisTreści|Szablony/Tom IV|{{ns:Help}}:Spis treści|Szablony - Tom IV}}
}}
== Tworzenie szablonów ==
Szablony tworzyć może każdy - wbrew pozorom nie jest to zbyt trudne. Najlepiej popatrz, jak zbudowane i stosowane są inne szablony i wzoruj się na nich. Pamiętaj o [[Wikibooks:Nazewnictwo artykułów#Szablony|Regułach nazewnictwa dla szablonów]].
== Zobacz też ==
* [[w:Wikipedia:Szablon|Wikipedia:Szablony]]
* [{{fullurl:Specjalna:Allpages|from=&namespace=10}} Automatyczna lista wszystkich szablonów]
* [[meta:Help:Magic words|Magic words]] - różne specjalne kody
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Wizualne opisy techniczne szablonów | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}</noinclude>
3xb3mgw4r85alsn613sgubirzw07osr
Szablon:Kolumny
10
20922
553112
545160
2026-08-24T17:13:57Z
Persino
2851
553112
wikitext
text/x-wiki
<includeonly>{{Div start|klasa=szablon_kolumny}}
{{Div start|styl={{#if: {{{1|}}}|-moz-column-count:{{{1}}}; -webkit-column-count:{{{1}}}; column-count:{{{1}}};}}}}
<templatestyles src="Szablon:Kolumny/styles.css" />
{{{2}}}
{{Div koniec}}
{{Div koniec}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
bg8exc14iobkdmx8sa0ea4irn3gv7mt
Szablon:Tabela nawigacyjna
10
32860
553230
553065
2026-08-25T05:02:50Z
Persino
2851
553230
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Tabela nawigacyjna/styles.css" />
{| {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} <!--
--> class="tabela_nawigacyjna {{#switch:{{{funkcja|UkrytaWikitabelowaListaMenu}}}
| UkrytaWikitabelowaListaMenu = wikitable collapsible collapsed
| PokazanaWikitabelowaListaMenu = wikitable collapsible
| StatycznaWikitabelowaListaMenu = wikitable
| UkrytaNiewikitabelowaListaMenu = collapsible collapsed
| PokazanaNiewikitabelowaListaMenu = collapsible
| StatycznaNiewikitabelowaListaMenu =
| AutomatycznaUkrytaWikitabelowaListaMenu = wikitable collapsible autocollapse
| AutomatycznaUkrytaNiewikitabelowaListaMenu = collapsible autocollapse
| WewnętrznaUkrytaWikitabelowaListaMenu = wikitable collapsible innercollapse
| WewnętrznaUkrytaNiewikitabelowaListaMenu = collapsible innercollapse
| #default = wikitable
}} {{{klasa|}}}" {{{opcje|}}}
|-
! style="{{{styl tytułu|}}}" | {{{tytuł}}}
| style="{{{styl spisu|}}}" | {{{spis}}}
|}<!--
-->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry
| = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}
| funkcja = ^UkrytaWikitabelowaListaMenu${{!}}^PokazanaWikitabelowaListaMenu${{!}}^StatycznaWikitabelowaListaMenu${{!}}^UkrytaNiewikitabelowaListaMenu${{!}}^PokazanaNiewikitabelowaListaMenu${{!}}^StatycznaNiewikitabelowaListaMenu${{!}}^AutomatycznaUkrytaWikitabelowaListaMenu${{!}}^AutomatycznaUkrytaNiewikitabelowaListaMenu${{!}}^WewnętrznaUkrytaWikitabelowaListaMenu${{!}}^WewnętrznaUkrytaNiewikitabelowaListaMenu$
| id =
| styl =
| styl tytułu =
| styl spisu =
| klasa =
| opcje =
| tytuł = txt!
| spis = txt!
}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
s3l0nfivsfu3xffdtshih0xis0xwdsr
553231
553230
2026-08-25T05:07:00Z
Persino
2851
553231
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Tabela nawigacyjna/styles.css" />
{| {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} <!--
--> class="tabela_nawigacyjna {{#switch:{{{funkcja|UkrytaWikitabelowaListaMenu}}}
| UkrytaWikitabelowaListaMenu = wikitable collapsible collapsed
| PokazanaWikitabelowaListaMenu = wikitable collapsible
| StatycznaWikitabelowaListaMenu = wikitable
| UkrytaNiewikitabelowaListaMenu = collapsible collapsed
| PokazanaNiewikitabelowaListaMenu = collapsible
| StatycznaNiewikitabelowaListaMenu =
| AutomatycznaUkrytaWikitabelowaListaMenu = wikitable collapsible autocollapse
| AutomatycznaUkrytaNiewikitabelowaListaMenu = collapsible autocollapse
| WewnętrznaUkrytaWikitabelowaListaMenu = wikitable collapsible innercollapse
| WewnętrznaUkrytaNiewikitabelowaListaMenu = collapsible innercollapse
| #default = wikitable
}} {{{klasa|}}}" {{{opcje|}}}
|-
! style="{{{styl tytułu|}}}" | {{{tytuł}}}
|-
| style="{{{styl spisu|}}}" | {{{spis}}}
|}<!--
-->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry
| = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}
| funkcja = ^UkrytaWikitabelowaListaMenu${{!}}^PokazanaWikitabelowaListaMenu${{!}}^StatycznaWikitabelowaListaMenu${{!}}^UkrytaNiewikitabelowaListaMenu${{!}}^PokazanaNiewikitabelowaListaMenu${{!}}^StatycznaNiewikitabelowaListaMenu${{!}}^AutomatycznaUkrytaWikitabelowaListaMenu${{!}}^AutomatycznaUkrytaNiewikitabelowaListaMenu${{!}}^WewnętrznaUkrytaWikitabelowaListaMenu${{!}}^WewnętrznaUkrytaNiewikitabelowaListaMenu$
| id =
| styl =
| styl tytułu =
| styl spisu =
| klasa =
| opcje =
| tytuł = txt!
| spis = txt!
}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
54bh9kneudjpoelh62w5ry393vcd51p
553232
553231
2026-08-25T05:07:28Z
Persino
2851
553232
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Tabela nawigacyjna/styles.css" />
{| {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} <!--
--> class="tabela_nawigacyjna {{#switch:{{{funkcja|UkrytaWikitabelowaListaMenu}}}
| UkrytaWikitabelowaListaMenu = wikitable collapsible collapsed
| PokazanaWikitabelowaListaMenu = wikitable collapsible
| StatycznaWikitabelowaListaMenu = wikitable
| UkrytaNiewikitabelowaListaMenu = collapsible collapsed
| PokazanaNiewikitabelowaListaMenu = collapsible
| StatycznaNiewikitabelowaListaMenu =
| AutomatycznaUkrytaWikitabelowaListaMenu = wikitable collapsible autocollapse
| AutomatycznaUkrytaNiewikitabelowaListaMenu = collapsible autocollapse
| WewnętrznaUkrytaWikitabelowaListaMenu = wikitable collapsible innercollapse
| WewnętrznaUkrytaNiewikitabelowaListaMenu = collapsible innercollapse
| #default = wikitable
}} {{{klasa|}}}" {{{opcje|}}}
|-
! style="{{{styl tytułu|}}}" | {{{tytuł}}}
|-
| style="{{{styl spisu|}}}" |
{{{spis}}}
|}<!--
-->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry
| = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}
| funkcja = ^UkrytaWikitabelowaListaMenu${{!}}^PokazanaWikitabelowaListaMenu${{!}}^StatycznaWikitabelowaListaMenu${{!}}^UkrytaNiewikitabelowaListaMenu${{!}}^PokazanaNiewikitabelowaListaMenu${{!}}^StatycznaNiewikitabelowaListaMenu${{!}}^AutomatycznaUkrytaWikitabelowaListaMenu${{!}}^AutomatycznaUkrytaNiewikitabelowaListaMenu${{!}}^WewnętrznaUkrytaWikitabelowaListaMenu${{!}}^WewnętrznaUkrytaNiewikitabelowaListaMenu$
| id =
| styl =
| styl tytułu =
| styl spisu =
| klasa =
| opcje =
| tytuł = txt!
| spis = txt!
}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
0lwcm6wvyyulkibwuioksmp39m2o1e2
553233
553232
2026-08-25T05:16:52Z
Persino
2851
553233
wikitext
text/x-wiki
<includeonly><templatestyles src="Szablon:Tabela nawigacyjna/styles.css" />
{| {{#if:{{{id|}}}|id="{{{id}}}"}} {{#if:{{{styl|}}}|style="{{{styl}}}"}} <!--
--> class="tabela_nawigacyjna {{#switch:{{{funkcja|UkrytaWikitabelowaListaMenu}}}
| UkrytaWikitabelowaListaMenu = wikitable collapsible collapsed
| PokazanaWikitabelowaListaMenu = wikitable collapsible
| StatycznaWikitabelowaListaMenu = wikitable
| UkrytaNiewikitabelowaListaMenu = collapsible collapsed
| PokazanaNiewikitabelowaListaMenu = collapsible
| StatycznaNiewikitabelowaListaMenu =
| AutomatycznaUkrytaWikitabelowaListaMenu = wikitable collapsible autocollapse
| AutomatycznaUkrytaNiewikitabelowaListaMenu = collapsible autocollapse
| WewnętrznaUkrytaWikitabelowaListaMenu = wikitable collapsible innercollapse
| WewnętrznaUkrytaNiewikitabelowaListaMenu = collapsible innercollapse
| #default = wikitable
}} {{{klasa|}}}" {{{opcje|}}}
|-
! {{#if:{{{styl tytułu|}}}|style="{{{styl tytułu}}}"}} | {{{tytuł}}}
|-
| {{#if:{{{styl spisu|}}}|style="{{{styl spisu}}}"}} |
{{{spis}}}
|}<!--
-->{{#if:{{{bez dodatkowych sprawdzeń|}}}||{{#invoke:Sprawdź|Parametry
| = problemy-w-szablonie-%s {{((}}Kategoria{{!}}Szablon %s do sprawdzenia{{))}}
| funkcja = ^UkrytaWikitabelowaListaMenu${{!}}^PokazanaWikitabelowaListaMenu${{!}}^StatycznaWikitabelowaListaMenu${{!}}^UkrytaNiewikitabelowaListaMenu${{!}}^PokazanaNiewikitabelowaListaMenu${{!}}^StatycznaNiewikitabelowaListaMenu${{!}}^AutomatycznaUkrytaWikitabelowaListaMenu${{!}}^AutomatycznaUkrytaNiewikitabelowaListaMenu${{!}}^WewnętrznaUkrytaWikitabelowaListaMenu${{!}}^WewnętrznaUkrytaNiewikitabelowaListaMenu$
| id =
| styl =
| styl tytułu =
| styl spisu =
| klasa =
| opcje =
| tytuł = txt!
| spis = txt!
}}}}</includeonly><noinclude>{{Dokumentacja}}</noinclude>
iv64i5p7d9v2wxjs05gcvyva677vryh
Szablon:LinkUstęp/opis
10
42099
553140
551009
2026-08-24T19:25:25Z
Persino
2851
/* Użycie */
553140
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Skomplikowany}}
{{Szablony opakowań linków wewnętrznych do ustępu}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
{{#if:{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}}
== Użycie ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
Służy do robienia odnośników w tekście do jakieś strony lub na tej samej, ewentualnie do rozdziału w niej, {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|#default=na tym samym projekcie|Pedia=na projekcie siostrzanym lub językowym|Ustęp=na tym samym projekcie lub siostrzanym lub językowym}}, szablon wyświetla link, z nazwą, którą jest nagłówek, nazwą oddzieloną od przestrzeni dwukropkiem, która nie jest przestrzenią nazw w ogólności, ale może być, wtedy ta nazwa linku nie nie może zawierać znaku {{Code|/}}, podstroną lub całą stroną (bez przestrzeni nazw, do której należy strona).
Obliczenia są w tym szablonie dokonywane {{LinkUstęp/opis/użycie|{{ROOTPAGENAME}}}}.<!--
-->{{LinkUstęp/opis/linki|{{ROOTPAGENAME}}}}
== Skrót szablonu ==
Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}.
== Opis parametrów ==
{{LinkUstęp/opis/wywołania|{{ROOTPAGENAME}}}}<!--
-->
; Parametry szablonu
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} = nazwa strony bez nazwy przestrzeni nazw{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|Pedia=.|#default=,{{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|
* {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|2}}, }}{{Code|m}} lub {{Code| miano przestrzeni nazw }} = miano przestrzeni nazw, w której jest ta strona - (opcjonalny, domyślnie przyjmuje wartość {{Np|(main)|link=tak}}),}}
* {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|3}}, }}{{Code|k}} lub {{Code| klucz projektu }} = skrót projektu, np. w to skrót do Wikipedia, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny, domyślnie wartość pusta),
*{{Code|kj}} lub {{Code|kod języka}} = kod języka projektu, używany tylko w wersji nazwanej zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta),
* {{Code|kp}} lub {{Code|kod projektu}} = kod projektu, używany tylko w wersji nazwanej, zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta){{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|,
* {{Code|4}}, {{Code|w}} lub {{Code|wyświetlana}} - wyświetlana nazwa strony - (opcjonalny).|.}}}}
* Operacje dokonywane na nazwie linku generowaną przez szablon, pisz:
** {{Code|b}} lub {{Code|od dużej}} - od dużej litery,
** {{Code|m}} lub {{Code|od małej}} - od małej litery.
----
Nagłówek jest to część nazwy strony, która jest najbliższa końcowi, oddzieloną od pozostałej części za pomocą znaku {{Code|#}}, podobnie jest z definicją podstrony, tzn. szuka najpierw względem {{Code|:}} (wydzielona ta część podstrony nie może zawierać {{Code|/}}), a później {{Code|/}}, jeżeli nie znalazł poprzedniego.
----
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr.
== Przykład ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}}
{{LinkUstęp/opis/przykłady|{{ROOTPAGENAME}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"kod języka": {
"description": "Kod języka projektu używany zmiast \"klucz projektu\".",
"type": "string"
},
"kod projektu": {
"description": "Kod projektu używany zamiast \"klucz projektu\".",
"type": "string"
},
"klucz projektu": {
"description": "klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\".",
"type": "string",
"aliases": [
"3"
]
},
"miano przestrzeni nazw": {
"aliases": [
"2"
],
"description": "Nazwa przestrzeni nazw, do której ma linkować link.",
"type": "string"
},
"strona": {
"description": "Nazwa strony.",
"type": "wiki-page-name",
"required": true,
"aliases": [
"1"
]
}
},
"description": "Szablon służy do robienia odnośników w tekście.",
"paramOrder": [
"strona",
"miano przestrzeni nazw",
"klucz projektu",
"kod języka",
"kod projektu"
]
}
</templatedata>
==Zobacz też==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}
| Pedia = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznej Wikipedii, do ustępu}}
| Ustęp = {{Kategoria|Szablony linków inteligentnych do ustępu|sortuj spacją=tak}}
| #default = {{Kategoria|Szablony linków inteligentnych, na bieżącym projekcie, do ustępu}}
}}</includeonly>
gvfib2fqt3viwx7xmmd81k8xhphwt6q
553141
553140
2026-08-24T19:26:32Z
Persino
2851
/* Użycie */
553141
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Skomplikowany}}
{{Szablony opakowań linków wewnętrznych do ustępu}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
{{#if:{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}}
== Użycie ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
Służy do robienia odnośników w tekście do jakieś strony lub na tej samej, ewentualnie do rozdziału w niej, {{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|#default=na tym samym projekcie|Pedia=na projekcie siostrzanym lub językowym|Ustęp=na tym samym projekcie, siostrzanym lub językowym}}, szablon wyświetla link, z nazwą, którą jest nagłówek, nazwą oddzieloną od przestrzeni dwukropkiem, która nie jest przestrzenią nazw w ogólności, ale może być, wtedy ta nazwa linku nie nie może zawierać znaku {{Code|/}}, podstroną lub całą stroną (bez przestrzeni nazw, do której należy strona).
Obliczenia są w tym szablonie dokonywane {{LinkUstęp/opis/użycie|{{ROOTPAGENAME}}}}.<!--
-->{{LinkUstęp/opis/linki|{{ROOTPAGENAME}}}}
== Skrót szablonu ==
Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkUstęp/skrót|{{ROOTPAGENAME}}}}}}.
== Opis parametrów ==
{{LinkUstęp/opis/wywołania|{{ROOTPAGENAME}}}}<!--
-->
; Parametry szablonu
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} = nazwa strony bez nazwy przestrzeni nazw{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}|Pedia=.|#default=,{{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|
* {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|2}}, }}{{Code|m}} lub {{Code| miano przestrzeni nazw }} = miano przestrzeni nazw, w której jest ta strona - (opcjonalny, domyślnie przyjmuje wartość {{Np|(main)|link=tak}}),}}
* {{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|{{Code|3}}, }}{{Code|k}} lub {{Code| klucz projektu }} = skrót projektu, np. w to skrót do Wikipedia, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny, domyślnie wartość pusta),
*{{Code|kj}} lub {{Code|kod języka}} = kod języka projektu, używany tylko w wersji nazwanej zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta),
* {{Code|kp}} lub {{Code|kod projektu}} = kod projektu, używany tylko w wersji nazwanej, zamiast {{Code|klucz projektu}} (lub w postaci {{Code|3}}) - (opcjonalny, domyślnie wartość pusta){{#ifeq:{{ROOTPAGENAME}}|LinkUstęp|,
* {{Code|4}}, {{Code|w}} lub {{Code|wyświetlana}} - wyświetlana nazwa strony - (opcjonalny).|.}}}}
* Operacje dokonywane na nazwie linku generowaną przez szablon, pisz:
** {{Code|b}} lub {{Code|od dużej}} - od dużej litery,
** {{Code|m}} lub {{Code|od małej}} - od małej litery.
----
Nagłówek jest to część nazwy strony, która jest najbliższa końcowi, oddzieloną od pozostałej części za pomocą znaku {{Code|#}}, podobnie jest z definicją podstrony, tzn. szuka najpierw względem {{Code|:}} (wydzielona ta część podstrony nie może zawierać {{Code|/}}), a później {{Code|/}}, jeżeli nie znalazł poprzedniego.
----
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr.
== Przykład ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}}
{{LinkUstęp/opis/przykłady|{{ROOTPAGENAME}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"kod języka": {
"description": "Kod języka projektu używany zmiast \"klucz projektu\".",
"type": "string"
},
"kod projektu": {
"description": "Kod projektu używany zamiast \"klucz projektu\".",
"type": "string"
},
"klucz projektu": {
"description": "klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\".",
"type": "string",
"aliases": [
"3"
]
},
"miano przestrzeni nazw": {
"aliases": [
"2"
],
"description": "Nazwa przestrzeni nazw, do której ma linkować link.",
"type": "string"
},
"strona": {
"description": "Nazwa strony.",
"type": "wiki-page-name",
"required": true,
"aliases": [
"1"
]
}
},
"description": "Szablon służy do robienia odnośników w tekście.",
"paramOrder": [
"strona",
"miano przestrzeni nazw",
"klucz projektu",
"kod języka",
"kod projektu"
]
}
</templatedata>
==Zobacz też==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{#switch:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link(%u%l+)}}
| Pedia = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznej Wikipedii, do ustępu}}
| Ustęp = {{Kategoria|Szablony linków inteligentnych do ustępu|sortuj spacją=tak}}
| #default = {{Kategoria|Szablony linków inteligentnych, na bieżącym projekcie, do ustępu}}
}}</includeonly>
tkjlv45819wu0ewrhry5yilfm8lha83
Szablon:LinkOgólne/opis
10
48166
553139
552282
2026-08-24T19:24:38Z
Persino
2851
/* Opis szablonu */
553139
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Linki}}
{{Skomplikowany}}
{{Szablony opakowań linków wewnętrznych}}
{{#if:{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|{{Skrót szablonu|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}|{{DivLinia}}}}
<!--DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NS|k=d|l=tak}}.
Szablon {{s|LinkOgólne}} i jego pochodne w ich definicji, obsługują nazwy przestrzenie nazw kanoniczne (angielskie) lub w jakimś języku, na danym projekcie siostrzanych lub w ich wersjach językowych.
Wystarczy podać nazwę kanoniczną przestrzeni nazw, a ta nazwa zostanie przetłumaczona na nazwę charakterystyczną dla danego projektu, jeżeli podamy parametr: {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}), bez: {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), w przeciwnym przypadku tego nie zrobi.
Na przykład na projekcie bieżącym dla szablonów ogólnie nie między-projektowych, wyświetlana nazwa przestrzeni nazw zostanie przetłumaczona na nazwę charakterystyczną dla polskiego {{NS|pk=d|w=tak|l=tak}}, jeżeli ustawimy szablon, by wyświetlał to w nazwie linku, to je robi możliwie po przetłumaczeniu na język polski, ona w adresie linku nie zostanie przetłumaczona, chyba że podamy parametr {{Parametr|analiza|tak}} (lub jego skrót: {{Parametr|a|tak}}) według powyższej specyfikacji.
Szablon zwykle nie tłumaczy w adresie linku nazwy przestrzeni nazw, np. na język polski lub inny, podanym w definicji tego szablonu, jeżeli jest nazwą kanoniczną podaną w definicji tego szablonu, a jeżeli nie, to nie ma czego tłumaczyć (bo w definicji szablonu pod zmienną: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), np. jest podane: {{Code|Wikibooks}}, zamiast: {{Code|Project}}), chyba że w przeciwnym wypadku, chcemy, by przetłumaczył na język charakterystyczny dla danego projektu, wskazanym przez szablon, wtedy należy podać parametr poniżej opisany do szablonu do głębszej analizy linkowej. {{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}|A nazwa przestrzeni nazw wyświetlana w nazwie linku za to zawsze zostanie przetłumaczona na nasz język.}}
Szablon używa zmiennej: {{Code|miano przestrzeni nazw}} (skrót: {{Parametr|f}}), w sposób {{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=jawny (w postaci osobnego parametru) lub nie (w pierwszej zmiennej)|#default=niejawny (w postaci zmiennej w definicji tego szablonu, używając szablon {{s|LinkOgólne}} (skrót: {{s|lo}}))}}, w przeciwieństwie do {{s|Link wewnętrzny}}, który tego nie ma, tzn. nazwa przestrzeni nazw jest zawsze podana tam w sposób niejawny w postaci pierwszej zmiennej wraz z adresem linku na danym projekcie i kluczem projektu (wtedy nie ma osobnego parametru do interwiki) lub nie (w postaci zmiennej (zmiennych) do interwiki).
== Skrót szablonu ==
Szablon {{s|{{ROOTPAGENAME}}}} posiada swój skrót: {{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}}}.
== Użycie ==
{{LinkOgólne/opis/linki|{{ROOTPAGENAME}}}}
{{LinkOgólne/opis/definicje|{{ROOTPAGENAME}}}}
== Opis parametrów ==
{{#switch:{{ROOTPAGENAME}}|LinkWB=
; Pełne wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}}
|LinkSpecjalna=
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}}
|LinkSpecjalna2=
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}}
|LinkOgólne=
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}|w{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}|wyświetl miano przestrzeni nazw{{=}}}}}}
|LinkOgólne2=
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}|f{{=}}|i{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}|f{{=}}|i{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}|miano przestrzeni nazw{{=}}|alias miana przestrzeni nazw{{=}}}}}}
|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}}
|
; Pełne wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|d{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}}
}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|k{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}}
|
; Pełne skrótowe wywołanie
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|2{{=}}|z{{=}}|p{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|2{{=}}|za{{=}}|po{{=}}}}}}
}}}}|{{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}|d{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}|dyskusja{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|po{{=}}|kj{{=}}|kp{{=}}|d{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}|dyskusja{{=}}}}}}
|
; Pełne skrótowe wywołanie
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|d{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|dyskusja{{=}}}}}}
}}|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|
; Pełne pierwsze wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|k{{=}}}}}}
; Pełne pierwsze wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|klucz projektu{{=}}}}}}
; Pełne drugie wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}|kj{{=}}|kp{{=}}}}}}
; Pełne drugie wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}|kod języka{{=}}|kod projektu{{=}}}}}}
|
; Pełne wywołanie skrótowe
{{Pre|{{s|{{LinkOgólne/skrót|{{ROOTPAGENAME}}}}|1{{=}}|z{{=}}|p{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|{{ROOTPAGENAME}}|1{{=}}|za{{=}}|po{{=}}}}}}
}}}}}}}}
; Parametry szablonu
* {{Code|1}} - nazwa strony, do której link linkuje się{{#ifeq:{{ROOTPAGENAME}}|LinkWB|,|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=[^2]$}}|,
* {{Code|2}} - nazwa linku - (sugerowany),|,}}}}
* {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za nazwą linku - (opcjonalny),
* {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku za pomocą umieszczenia jego bezpośrednio za linkiem - (opcjonalny){{#switch:{{ROOTPAGENAME}}|LinkWB=.|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|,
* {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}} - (opcjonalny),
* {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka używany zamiast {{Code|klucz projektu}} - (opcjonalny),
* {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu używany zamiast {{Code|klucz projektu}} - (opcjonalny)}}{{#switch:{{ROOTPAGENAME}}|LinkSpecjalna|LinkSpecjalna2=|LinkWB=|#default={{#if:{{#invoke:Parametry|Not|{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=Specjalna2?$}}}}|,
* {{Code|d}} (przestarzałe) lub {{Code|dyskusja}} - tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty - (opcjonalny)}}}}{{#switch:{{ROOTPAGENAME}}|LinkOgólne|LinkOgólne2=,
* {{Code|f}} (przestarzałe), {{Code|przestrzeń}} (niezalecana) lub {{Code|miano przestrzeni nazw}} - miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego {{NS|pk=d|l=tak|w=tak}}, i jego siostrzanych projektów, a także dla ich wersji językowych - (opcjonalny),
* {{Code|i}} (przestarzałe), {{Code|alias}} lub {{Code|alias miana przestrzeni nazw}} - alias do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne| i podano niepustą zmienną {{Code|wyświetl miano przestrzeni nazw}} - (opcjonalny)}}{{#ifeq:{{ROOTPAGENAME}}|LinkOgólne2|.|,
* {{Code|w}} (przestarzałe), {{Code|wyświetl}} (niezalecana) lub {{Code|wyświetl miano przestrzeni nazw}} - jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku - (opcjonalny),}}}}}}
* {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany.
----
Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu nieprzekierowania, a nie są, gdy używamy przekierowania do tego szablonu.
----
----
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}}
{{LinkOgólne/opis/przykłady|{{ROOTPAGENAME}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"1": {
"description": "Nazwa strony, do której link linkuje się.",
"type": "wiki-page-name",
"required": true
},
"2": {
"description": "Nazwa linku.",
"type": "string",
"suggested": true
},
"po": {
"aliases": [
"p"
],
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.",
"type": "string"
},
"klucz projektu": {
"aliases": [
"k"
],
"description": "Kod projektu siostrzanego Wikibooks, ewentualnie w innej wersji językowej Wikimedia, używany zamiast kod języka i kod projektu."
},
"kod języka": {
"aliases": [
"kj"
],
"description": "Kod języka używany zamiast klucz projektu."
},
"kod projektu": {
"aliases": [
"kp"
],
"description": "Kod projektu używany zamiast klucz projektu."
},
"dyskusja": {
"aliases": [
"d"
],
"description": "Tłumaczy przestrzeń nazw na przestrzeń nazw dyskusji, gdy niepusty .",
"type": "string"
},
"miano przestrzeni nazw": {
"aliases": [
"przestrzeń",
"m"
],
"description": "Miano przestrzeni nazw kanoniczne lub niekanoniczne strony, dla projektu polskiego Wikibooksa, i jego siostrzanych projektów, a także dla ich wersji językowych.",
"type": "string"
},
"skrót nazwy przestrzeni nazw": {
"aliases": [
"skrót",
"s"
],
"description": "Skrót do nazwy przestrzeni nazw, który jest wyświetlany przed nazwą strony, jeśli nie podano nazwy linku i podano niepustą zmienną wyświetl miano przestrzeni nazw.",
"type": "string"
},
"wyświetl miano przestrzeni nazw": {
"aliases": [
"wyświetl",
"w"
],
"description": "Jeśli wartość niepusta, to wyświetla nazwę przestrzeni nazw w nazwie linku.",
"type": "string"
},
"za": {
"aliases": [
"z"
],
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.",
"type": "string"
}
},
"description": "Szablon ogólny linków {{LinkOgólne}}, który jest budulcem innych szablonów tego typu, służy do budowania inteligentnych linków, kolorujących je. Szablon {{LinkOgólne}} obsługuje wszystkie poniższe parametry, szablony pochodne używają tylko niektórych. Szablony, ale typowo nie między-projektowe, obsługują wszystkie parametry, oprócz nazwy przestrzeni nazw: miano przestrzeni nazw, i wyświetlania nazwy przestrzeni nazw: wyświetl miano przestrzeni nazw, i skrótu do nazwy przestrzeni nazwy: skrót nazwy przestrzeni nazw. Szablony: {{LinkSpecjalna}}, {{LinkSpecjalna2}} itp., dodatkowo nie obsługują parametru: dyskusja. Szablon {{LinkWB}}, też nie obsługuje parametru: skrót nazwy przestrzeni nazw. Szablony linków między-projektowe nie obsługują parametrów: miano przestrzeni nazw, wyświetl miano przestrzeni nazw, skrót nazwy przestrzeni nazw, klucz projektu, kod języka i kod projektu. ",
"paramOrder": [
"1",
"2",
"za",
"po",
"klucz projektu",
"kod języka",
"kod projektu",
"dyskusja",
"miano przestrzeni nazw",
"skrót nazwy przestrzeni nazw",
"wyświetl miano przestrzeni nazw"
]
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u+$}}|{{Kategoria|Szablony linków inteligetnych z wyświetlanymi skrótowymi nazwami przestrzeni nazw}}}}
{{#switch:{{ROOTPAGENAME}}|LinkWB=|#default=
{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=^Link%u%l+2?$}}|
{{#switch:{{ROOTPAGENAME}}
|LinkOgólne|LinkOgólne2={{Kategoria|Szablony linków inteligentnych}}
|#default={{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}
|{{Kategoria|Szablony linków inteligentnych z wyświetlanymi nieskrótowymi nazwami przestrzeni nazw}}
|{{Kategoria|Szablony linków inteligentnych z niewyświetlanymi nazwami przestrzeni nazw}}
}}
}}
{{#switch:{{ROOTPAGENAME}}
| LinkOgólne
| LinkGłówna
| LinkWikijunior
| LinkWikijunior2
| LinkProjekt
| LinkProjekt2
| LinkUżytkownik
| LinkUżytkownik2 = {{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
}}
|{{#if:{{Dopasuj|ciąg={{ROOTPAGENAME}}|wzór=2$}}
|{{#switch:{{ROOTPAGENAME}}
| #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}}
| LinkCommonsKategoria2
| LinkMetaWikiPomoc2
| LinkMediaWikiPomoc2
| LinkMetaWikiProjekt2
| LinkMediaWikiExtension2 = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z wyświetlanymi nazwami przestrzeni nazw}}
}}
|{{#switch:{{ROOTPAGENAME}}
| #default = {{Kategoria|Szablony linków inteligentnych, do polskojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}}
| LinkEnGłówna
| LinkEnWikijunior
| LinkEnProjekt
| LinkEnKategoria
| LinkEnPediaGłówna = {{Kategoria|Szablony linków inteligentnych, do językowych projektów, z niewyświetlanymi nazwami przestrzeni nazw}}
| LinkWikiaGłówna
| LinkCommonsGłówna
| LinkCommonsKategoria
| LinkSpeciesGłówna
| LinkMediaWikiGłówna
| LinkMetaWikiGłówna
| LinkDaneGłówna
| LinkDaneProjekt
| LinkSpeciesProjekt
| LinkCommonsProjekt
| LinkMetaWikiSpecjalna
| LinkMetaWikiPomoc
| LinkMetaWikiProjekt
| LinkMediaWikiPomoc
| LinkMediaWikiExtension = {{Kategoria|Szablony linków inteligentnych, do obcojęzycznych projektów, z niewyświetlanymi nazwami przestrzeni nazw}}
}}
}}
}}
}}
</includeonly>
81me4pd3q8mcwzqo58wnahpcsabqe3b
Szablon:Sekcja referencyjna/opis
10
54317
553134
545148
2026-08-24T19:18:21Z
Persino
2851
/* Opis parametrów */
553134
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
sn1kbz2usowtzogqrns64b5s5jea0e3
553136
553134
2026-08-24T19:20:11Z
Persino
2851
/* Opis parametrów */
553136
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
piwi8d2b14b6wi7y4mxqrj1gzvxdna5
553137
553136
2026-08-24T19:22:15Z
Persino
2851
/* Dlaczego ten szablon */
553137
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
50n3u65nuvwo347nwgvu8sn6s83cguc
553138
553137
2026-08-24T19:23:35Z
Persino
2851
/* Opis szablonu */
553138
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów '''CSS''', które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
1d7jyfycm2ie8q3tkegypenebxuux8p
553145
553138
2026-08-24T19:31:06Z
Persino
2851
/* Opis parametrów */
553145
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów '''CSS''', które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
rw6r94646k70ngnbj5bwle2cnl2u1h7
553146
553145
2026-08-24T19:32:26Z
Persino
2851
/* Opis parametrów */
553146
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów '''CSS''', które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej, wtedy szablon tak działa na stronie zbiorczej, jak by nie był nią,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą,
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
kppoaevva4tbzxrih8fo7pe8e8on0lf
553148
553146
2026-08-24T19:34:06Z
Persino
2851
/* Opis parametrów */
553148
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Sekcja referencyjna|StronicowyParser|Nazwy|Parametry|Linki}}
{{Skomplikowany}}
{{Szablony stronicowe}}
{{#switch:{{ROOTPAGENAME}}|Sekcja referencyjna={{Skrót szablonu|sr}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów '''CSS''', które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
== Użycie ==
Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie {{Code|Wersja do druku}} lub na stronach zbiorczych złożonych z artykułów, do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły.
== Ogólne przedstawienie szablonu ==
{{Pre|{{s|sr|nazwa strony}}, {{s|sr|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|sr|nazwa strony|tytuł linku w tekście}} lub {{s|sr|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
{{Pre|{{s|Sekcja referencyjna|nazwa strony}}, {{s|Sekcja referencyjna|1{{=}}nazwa strony|3{{=}}nazwa podstrony}}, {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście}} lub {{s|Sekcja referencyjna|nazwa strony|tytuł linku w tekście|nazwa podstrony}}}}
Szablon ten, gdy użyty na normalnej stronie, wstawia linka do strony (domyślnie rozdziału lub innego rodzaju sekcji,
na którą jest podzielona książka). Używa się go podobnie jak zwykłego linka: <nowiki>[[nazwa strony|tytuł linku w tekście]]</nowiki>.
Różnica pojawia się, gdy strona zawierająca ten szablon zostanie dołączona do strony, która ma w tytule "Wersja do druku".
Wtedy szablon ten, zamiast tworzyć linka do strony, tworzy odnośnik do sekcji na tej samej stronie.
=== Dlaczego ten szablon ===
Szablon został stworzony 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 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 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).
== Opis parametrów ==
; Pełne skrótowe wywołanie
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}p{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
{{Pre|{{s|sr|{{Code|{{!(}}1{{!}}s{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}n{{)!}}}}{{=}}|{{Code|{{!(}}b{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}u{{)!}}}}{{=}}|{{Code|{{!(}}t{{)!}}}}{{=}}}}}}
; Pełne wywołanie
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}3{{!}}podstrona{{)!}}}}{{=}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
{{Pre|{{s|Sekcja referencyjna|{{Code|{{!(}}1{{!}}strona{{)!}}}}{{=}}|{{Code|{{!(}}2{{!}}nazwa{{)!}}}}{{=}}|{{Code|{{!(}}bieżąca{{)!}}}}{{=}}{{Code|tak}}|{{Code|{{!(}}4{{!}}ustęp{{)!}}}}{{=}}|{{Code|{{!(}}pod-ustęp{{)!}}}}{{=}}}}}}
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
* {{Code|1}}, {{Code|s}} lub {{Code|strona}} - jest to artykuł w podręczniku, ewentualnie z nagłówkiem,
* {{Code|2}}, {{Code|n}} lub {{Code|nazwa}} - nazwa linku wyświetlana w artykule,
* {{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,
* {{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,
* {{Code|m}}, {{Code|od małej}} - jeśli niepuste, wyświetlany jest link od małej litery,
* {{Code|d}}, {{Code|od dużej}} - jeśli niepuste, wyświetlany jest link od dużej litery,
* {{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,
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej, wtedy szablon tak działa na stronie zbiorczej, jak by nie była nią,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać. Działanie na odpowiednich stronach jest zasymulowane za pomocą parametrów pudełek.
----
----
; Podstawowe użycie
----
* Wikikod: {{s|sr|s{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}Historia matematyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=Historia matematyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Alfabet grecki|n{{=}}Alfabet grecki|p{{=}}Wstęp}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}}}}} → {{sr|s=Alfabet grecki|n=Alfabet grecki|p=Wstęp|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wstęp/Alfabet grecki|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia#Historia onomastyki|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=Historia#Historia onomastyki|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}#Historia onomastyki|p{{=}}Historia}} → {{Nowiki|{{WydobądźLinki|{{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}}}}} → {{sr|s=#Historia onomastyki|p=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Historia|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy/Zbiory|o=tak}}.
----
----
; Przykłady {{Code|m}} i {{Code|d}}
----
* Wikikod: {{s|sr|s{{=}}Historia|m{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}}}}} → {{sr|s=Historia|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|m=tak|o=tak}}.
* Wikikod: {{s|sr|s{{=}}Historia|n{{=}}historia|d{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}}}}} → {{sr|s=Historia|n=historia|d=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Onomastyka/Abionim|o=tak}}.
----
----
----
; Dla stron o subnazwie {{lu|Matematyka dla liceum/Wersja do druku}} dla przykładu dla strony {{lg|Matematyka dla liceum/Wersja do druku}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Wersja do druku|c=tak}}.
----
----
; Dla stron o subnazwie poszczególnych rozdziałów, tu mamy {{lg|Matematyka dla liceum/Zaczynamy}}, a jego substrona (jednocześnie rozdział) {{lu|Matematyka dla liceum/Zaczynamy}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Zaczynamy|c=tak}}.
----
----
; Dla stron o subnazwie równej nazwie książki, tu mamy {{lg|Matematyka dla liceum/Matematyka dla liceum}}, a jego substrona (jednocześnie s zbiorcza) {{lu|Matematyka dla liceum/Matematyka dla liceum}}
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zaczynamy/Zbiory|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zaczynamy/Zbiory|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
* Wikikod: {{s|sr|s{{=}}Zbiory|p{{=}}Zaczynamy|u{{=}}tak|t{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}}}}} → {{sr|s=Zbiory|p=Zaczynamy|u=tak|t=tak|nazwa przestrzeni nazw=(main)|nazwa jednostki=Matematyka dla liceum/Matematyka dla liceum|c=tak}}.
----
----
----
; Dla stron brudnopisu projektu {{lr2|Brudnopis}} lub stron w przestrzeni nazw {{Np|User|link=tak}}, dla przykładu dla artykułu {{lr2|Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż}}
----
* Wikikod: {{s|sr}} → {{Nowiki|{{WydobądźLinki|{{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
* Wikikod: {{s|sr|u{{=}}tak}} → {{Nowiki|{{WydobądźLinki|{{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}}}}} → {{sr|u=tak|nazwa przestrzeni nazw=Project|nazwa jednostki=Brudnopis/Karol Karolus/Ulice miasta Lublina/Litera Ż|o=tak}}.
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"aliases": [
"1"
],
"description": "Nazwa strony, ewentualnie z nagłówkiem.",
"type": "wiki-page-name",
"suggested": true
},
"nazwa": {
"aliases": [
"2"
],
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"podstrona": {
"aliases": [
"3"
],
"description": "Podstrona podręcznika, do której ma zaliczyć, do linku, artykuł.",
"type": "string"
},
"ustęp": {
"aliases": [
"4"
],
"description": "Jeśli niepuste, gdy ma wyświetlić nagłówek strony lub podstronę.",
"type": "string"
}
},
"description": "Szablon służy do użycia na stronach danych podręczników, z linkiem do strony do nagłówka rozdziału lub do samej strony, albo na stronach wersji do druku (stworzonej z artykułów tego podręcznika), o nazwie \"Wersja do druku\", do linkowania, w niej, do nagłówków, gdzie w ich tekstach są załadowane artykuły."
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE I INTERWIKI PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony pomocne do tworzenia spisów treści, książek
| Szablony na strony z wersją do druku
| Szablony linków inteligentnych do ustępu
| Szablony stronicowe stron zbiorczych
| Szablony stronicowe linków inteligentnych spisów rzeczy
}}
</includeonly>
35erlncp1b2owi917zifplw7r6vlnwq
Szablon:Link wewnętrzny/opis
10
56016
553142
544548
2026-08-24T19:27:56Z
Persino
2851
/* Użycie */
553142
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Linki}}
{{Skomplikowany}}
{{#switch:{{ROOTPAGENAME}}|Link wewnętrzny={{Skrót szablonu|Ly}}|#defualt={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Użycie ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{s|LinkOgólne}} i {{s|LinkOgólne2}}, które używają to bezpośrednio, i jego pochodnych, używające pośrednio.
=== Przykłady linków z zastosowanymi kolorami w kaskadowym arkuszu stylów: {{ls2|Link wewnętrzny/styles.css}} ===
{{Tabela nawigacyjna
| tytuł = Spis kodów i im odpowiadających kolorów, linków wewnętrznych i zewnętrznych, na przykładzie jednego przykładowego linku
| spis = <templatestyles src="Szablon:Link_wewnętrzny/styles.css" />
* Link: {{Span|klasa=iw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iw}} - strona istnieje na tej wiki,
* Link: {{Span|klasa=inw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inw}} - strona z nagłówkiem istnieje na tej wiki,
* Link: {{Span|klasa=niw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niw}} - strona nie istnieje na tej wiki,
* Link: {{Span|klasa=ninw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninw}} - strona z nagłówkiem nie istnieje na tej wiki,
* Link: {{Span|klasa=iwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwew}} - strona istnieje na tej wiki jako element wikidanych,
* Link: {{Span|klasa=inwew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwew}} - strona z nagłówkiem istnieje na tej wiki, jako element wikidanych,
* Link: {{Span|klasa=iew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iew}} - strona istnieje jako element wikidanych,
* Link: {{Span|klasa=inew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inew}} - strona z nagłówkiem istnieje jako element wikidanych,
* Link: {{Span|klasa=niew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niew}} - strona nie istnieje jako element wikidanych,
* Link: {{Span|klasa=ninew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninew}} - strona z nagłówkiem nie istnieje jako element wikidanych,
* Link: {{Span|klasa=wash link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wash}} - strona z linkiem aktywnym wskazuje na aktualną stronę,
* Link: {{Span|klasa=was link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|was}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę,
* Link: {{Span|klasa=wasn link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasn}} - strona z nagłówkiem wskazuje na aktualną stronę,
* Link: {{Span|klasa=washew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washew}} - strona z linkiem aktywnym wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=wasew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasew}} - strona z linkiem nieaktywnym wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=wasnew link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnew}} - strona z nagłówkiem wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=ipw link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipw}} - strona istnieje poza wikidane,
* Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z nagłówkiem istnieje poza wikidane,
* Link: {{Span|klasa=dwni link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwni}} - strona wskazująca na daną wiki, która nie istnieje,
* Link: {{Span|klasa=su link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|su}} - strona z adresem URL niewskazującą na projekty WIKI,
* Link: {{Span|klasa=sun link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sun}} - strona z nagłówkiem z adresem URL niewskazującą na projekty WIKI,
* Link: {{Span|klasa=iwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwp}} - strona z parametrami istnieje na tej wiki,
* Link: {{Span|klasa=inwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwp}} - strona z parametrami i nagłówkiem istnieje na tej wiki,
* Link: {{Span|klasa=niwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niwp}} - strona z parametrami nie istnieje na tej wiki,
* Link: {{Span|klasa=ninwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninwp}} - strona z parametrami i nagłówkiem nie istnieje na tej wiki,
* Link: {{Span|klasa=iwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iwewp}} - strona z parametrami istnieje na tej wiki jako element wikidanych,
* Link: {{Span|klasa=inwewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inwewp}} - strona z parametrami i nagłówkiem istnieje na tej wiki jako element wikidanych,
* Link: {{Span|klasa=iewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|iewp}} - strona z parametrami istnieje jako element wikidanych,
* Link: {{Span|klasa=inewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inewp}} - strona z parametrami i nagłówkiem istnieje jako element wikidanych,
* Link: {{Span|klasa=niewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|niewp}} - strona z parametrami nie istnieje jako element wikidanych,
* Link: {{Span|klasa=ninewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ninewp}} - strona z parametrami i nagłówkiem nie istnieje jako element wikidanych,
* Link: {{Span|klasa=washp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę,
* Link: {{Span|klasa=wasp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę,
* Link: {{Span|klasa=wasnp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę,
* Link: {{Span|klasa=washewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|washewp}} - strona, z linkiem aktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=wasewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasewp}} - strona, z linkiem nieaktywnym, z parametrami wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=wasnewp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|wasnewp}} - strona z parametrami i nagłówkiem wskazuje na aktualną stronę jako element wikidanych,
* Link: {{Span|klasa=ipwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|ipwp}} - strona z parametrami istnieje poza wikidane,
* Link: {{Span|klasa=inpwp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|inpwp}} - strona z parametrami i nagłówkiem istnieje poza wikidane,
* Link: {{Span|klasa=dwnip link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|dwnip}} - strona z parametrami wskazująca na daną wiki, która nie istnieje,
* Link: {{Span|klasa=sup link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sup}} - strona z parametrami z adresem URL niewskazującą na projekty WIKI,
* Link: {{Span|klasa=sunp link|styl=font-weight:bold|[[Szablon:Link wewnętrzny/styles.css|Link z ustawionym kodem linków]]}} - kod koloru: {{Span|styl=color:blue|sunp}} - strona z parametrami i nagłówkiem, z adresem URL niewskazującą na projekty WIKI.
}}
----
Z szablonu {{s|Link wewnętrzny/styles.css}} (z kaskadowych arkuszy stylów) korzystają szablony: {{s|Link wewnętrzny}} (skrót: {{s|ly}}), {{s|LinkURL}} (skrót: {{s|lz}}), {{s|LinkOgólne}} (skrót: {{s|lo}}) (i z niego korzystające wedle ich definicji), {{s|LinkUstęp}} (skrót: {{s|lu}}) (i z niego korzystające wedle ich definicji), {{s|Sekcja referencyjna}} (skrót: {{s|sr}}) i szablony symbolizujące wikikod, zbudowanych przy pomocy linków wewnętrznych: {{s|S}} i {{s|M}}, a także: {{s|L}}, oraz szablony sekcji: {{s|Osobny artykuł}}, {{s|Zobacz głównie}}, {{s|Zobacz sekcję}}, {{s|Zobacz też}}, {{s|Główny artykuł}}, {{s|Kategoria główna}} i {{s|Zobacz kategorię}} - i inne, sformułowane w oparciu o nie.
== Opis parametrów ==
; Pełne skrótowe pierwsze wywołanie
{{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|k{{=}}}}}}
; Pełne nieskrótowe pierwsze wywołanie
{{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|klucz projektu{{=}}}}}}
----
;Pełne skrótowe drugie wywołanie
{{Pre|{{s|Ly|s{{=}}|n{{=}}|z{{=}}|p{{=}}|g{{=}}|kj{{=}}|kp{{=}}}}}}
; Pełne nieskrótowe drugie wywołanie
{{Pre|{{s|Link wewnętrzny|strona{{=}}|nazwa{{=}}|za{{=}}|po{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}}}}}
; Szablon przyjmuje tylko parametry nazwane:
* {{Code|s}} lub {{Code|strona}} - pełna nazwa strony bez kodu projektu lub języka, do której ma linkować na tym samym projekcje lub innym,
* {{Code|n}} lub {{Code|nazwa}} - nazwa linku,
* {{Code|z}} lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku,
* {{Code|p}} lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku,
* {{Code|g}} lub {{Code|nagłówek}} - nagłówek rozdziału strony, do którego ma linkować,
* {{Code|k}} lub {{Code|klucz projektu}} - klucz projektu siostrzanego lub językowego, używany zamiast {{Code|kod języka}} i {{Code|kod projektu}},
* {{Code|kj}} lub {{Code|kod języka}} - kod języka projektu, używany zamiast {{Code|klucz projektu}},
* {{Code|kp}} lub {{Code|kod projektu}} - kod projektu, używany zamiast {{Code|klucz projektu}},
* {{Code|u}} lub {{Code|uri}} - jeśli niepuste, to traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany.
----
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz|tak}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp|tak}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr {{Parametr|analiza|tak}} (skrót: {{Parametr|a|tak}}) do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr.
== Przykład ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}}
{{Pre start}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Spis treści}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|n=Pomoc:Spis treści}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści#Wstęp}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści#Wstęp}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Spis treści}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Pomoc:Spis treści|g{{=}}Wstęp|n{{=}}Pomoc:Spis treści}} → {{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Pomoc:Spis treści|g=Wstęp|n=Pomoc:Spis treści}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Szablony}} → {{ly|s=Kategoria:Szablony|n=Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Szablony}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=w:Kategoria:Szablony|k=w}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:Kategoria:Szablony}} → {{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:Kategoria:Szablony}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=Kategoria:Szablony|k=w}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Kategoria:Szablony|n{{=}}:w:Kategoria:Szablony|k{{=}}w}} → {{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Kategoria:Szablony|n=:w:Kategoria:Szablony|k=w}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}Category:Wikipedia templates|k{{=}}en:w}} → {{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=Category:Wikipedia templates|k=en:w}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|k{{=}}w:en}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|k=w:en}}}}}}<!--
-->{{Hr}}<!--
-->{{s|ly|s{{=}}Category:Wikipedia templates|n{{=}}en:w:Category:Wikipedia templates|kj{{=}}en|kp{{=}}w}} → {{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}} → {{Nowiki|{{WydobądźLinki|{{ly|s=Category:Wikipedia templates|n=en:w:Category:Wikipedia templates|kj=en|kp=w}}}}}}<!--
-->{{Pre koniec}}
== Błędy ==
Błędy należy zgłaszać na stronie {{kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"strona": {
"description": "Pełna nazwa strony.",
"type": "wiki-page-name",
"required": true,
"aliases": [
"s"
]
},
"nagłówek": {
"description": "Nagłówek strony.",
"type": "string",
"suggested": true,
"aliases": [
"g"
]
},
"nazwa": {
"description": "Nazwa linku.",
"type": "string",
"suggested": true,
"aliases": [
"n"
]
},
"klucz projektu": {
"description": "Klucz danego projektu siostrzanego lub językowego Wikibooksa, używany zamiast zmiennych \"kod języka\" i \"kod projektu\".",
"aliases": [
"k"
]
},
"kod języka": {
"description": "Kod języka projektu, do którego linkuje link, używany zamiast \"klucz projektu\".",
"aliases": [
"kj"
]
},
"kod projektu": {
"description": "Kod projektu, do którego linkuje link, używany zamiast \"klucz projektu\".",
"aliases": [
"kp"
]
},
"za": {
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.",
"type": "string",
"aliases": [
"z"
]
},
"po": {
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.",
"type": "string",
"aliases": [
"p"
]
}
},
"description": "Szablon do tworzenia linków, inteligentnych kolorujących w zależności do jakiej kategorii należą, wewnętrznych. Sprawdza, jeśli podano również nazwę linku, czy ona jest taka sama jak adres linku, a jeśli tak, to w definicji jego używa tylko adresu linku, a jeśli nie, to adresu linku i nazwy linku. Szablon nie używa parametru obsługujących nazwę przestrzeni nazw, w przeciwieństwie do {{LinkOgólne}} i {{LinkOgólne2}}, które używają to bezpośrednio, i jego pochodnych, używające pośrednio.",
"paramOrder": [
"strona",
"nagłówek",
"nazwa",
"za",
"po",
"klucz projektu",
"kod języka",
"kod projektu"
]
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategorie
| Szablony linków wewnętrznych
| Szablony pomocne do tworzenia spisów treści, książek
}}
</includeonly>
6gbwfzxbbcmbahx27n0vgylgnzw3rt0
Szablon:LinkURL/opis
10
56545
553143
546335
2026-08-24T19:28:59Z
Persino
2851
/* Opis szablonu */
553143
wikitext
text/x-wiki
{{Podstrona dokumentacji}}
{{Lua|Module:Linki}}
{{Skomplikowany}}
{{#switch:{{ROOTPAGENAME}}|LinkURL={{Skrót szablonu|Lz}}|#default={{DivLinia}}}}
<!-- DODAWAJ KATEGORIE NA DOLE STRONY -->
== Opis szablonu ==
Jest to specjalistyczny szablon linków inteligetnych (tzw. linki inteligetne), a link do jego stylów mieści się w szablonie kodów linków inteligentnych z kodami na stronie {{s|Link wewnętrzny}}, który się znajduje pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do szablonu kaskadowych arkuszy stylów CSS, które są od nadawawia barwy linkom, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Szablon koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez te kody, a do tego celu używa {{NAZWASERWISU|klucz projektu=d|link=tak}}.
Szablon {{s|LinkURL}} posiada wersję skróconą w postaci skrótu podanego w prawym górnym rogu strony w podwójnych nawiasach klamrowych.
== Użycie ==
Szablon wykorzystuje adres strony URL, protokolarny lub nie, albo adres linku wewnętrznego, i tworzy z niego link, niekoniecznie zewnętrzny, o podanej nazwie, lub nie, wyświetlanej przez szablon.
Szablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego {{NAZWASERWISU|link=w}}, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.
W przypadku projektów {{NAZWASERWISU|klucz projektu=mw|link=tak}}, gdy podano parametr z wartością {{Parametr|w|w}} lub {{Parametr|w|wiki}}, to szablon generuje link zewnętrzny kolejno w postaci {{Code|../w/..}}, i {{Code|../wiki/..}}.
== Skrót do szablonu ==
Skrót do szablonu {{s|LinkURL}} jest {{s|lz}}.
== Opis parametrów ==
; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL
{{Pre|{{s|lz|s{{=}}|w{{=}}|g{{=}}|b{{=}}|z{{=}}|p{{=}}}}}}
; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL
{{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nagłówek{{=}}|bieżąca{{=}}|za{{=}}|po{{=}}}}}}
----
; Pełne skrótowe pierwsze wywołanie w przypadku podania strony URL
{{Pre|{{s|lz|s{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}}
; Pełne nieskrótowe pierwsze wywołanie w przypadku podania strony URL
{{Pre|{{s|LinkURL|strona{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}}
----
; Pełne skrótowe drugie wywołanie, gdy strona nie jest adresem URL
{{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|k{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}}
; Pełne nieskrótowe drugie wywołanie, gdy strona nie jest adresem URL
{{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|klucz projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}}
----
;Pełne skrótowe trzecie wywołanie, gdy strona nie jest adresem URL
{{Pre|{{s|lz|f{{=}}|s{{=}}|c{{=}}|g{{=}}|kj{{=}}|kp{{=}}|w{{=}}|n{{=}}|z{{=}}|p{{=}}}}}}
;Pełne nieskrótowe trzecie wywołanie, gdy strona nie jest adresem URL
{{Pre|{{s|LinkURL|{{!(}}miano przestrzeni nazw{{!}}przestrzeń{{)!}}{{=}}|strona{{=}}|parametry{{=}}|nagłówek{{=}}|kod języka{{=}}|kod projektu{{=}}|wersja linku{{=}}|nazwa{{=}}|za{{=}}|po{{=}}}}}}
----
; Parametry, strona URL może wskazywać na jakąś wiki lub być zewnętrznym adresem do zupełnie innej wiki lub jakieś innej strony nienależącej do żadnego wiki
* {{Code|f}} (przestarzałe), {{Code|przestrzeń}} lub {{Code|miano przestrzeni nazw}} - nazwa przestrzeni nazw, do której należy strona
* {{Code|s}} (przestarzałe) lub {{Code|strona}} - nazwa strony, z przestrzenią nazw, kodami języka lub projektu albo nie lub nazwą strony zaczynający się od {{Code|/wiki/}} lub {{Code|/w/}}, albo jest URL (z nazwą protokołu lub nie) strony, a na projektach MediaWiki z nazwą strony z tymi pierwszymi opcjami (nazwy przestrzeni i kody), co tutaj są wymienione.
* {{Code|c}} (przestarzałe) lub {{Code|parametry}} - parametry strony,
* {{Code|g}} (przestarzałe) lub {{Code|nagłówek}} - nagłówek strony następujący po znaku: {{Code|#}},
* {{Code|k}} (przestarzałe) lub {{Code|klucz projektu}} - klucz projektu, używany zamiast zmiennych: {{Code|kod języka}} i {{Code|kod projektu}},
* {{Code|kj}} (przestarzałe) lub {{Code|kod języka}} - kod języka, używany zamiast zmiennej {{Code|klucz projektu}},
* {{Code|kp}} (przestarzałe) lub {{Code|kod projektu}} - kod projektu, używany zamiast zmiennej {{Code|klucz projektu}},
* {{Code|w}} (przestarzałe) lub {{Code|wersja linku}} - generuje link zewnętrzny, gdy: {{Parametr|wersja linku|w}}, w postaci: {{Code|../w/..}}, zamiast: {{Code|../wiki/..}} dla {{Parametr|wersja linku|wiki}}, a gdy {{Parametr|wersja linku}}, to generuje normalny link wewnętrzny, jeżeli nie ma on parametrów i nie jest URL,
* {{Code|n}} (przestarzałe) lub {{Code|nazwa}} - nazwa wyświetlana linku,
* {{Code|b) (przestarzałe) lub {{Code|bieżąca}} - czy ma powtarzać nazwę nagłówka w nazwie linku, gdy nazwa linku jest niepodana,
* {{Code|z}} (przestarzałe) lub {{Code|za}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku,
* {{Code|p}} (przestarzałe) lub {{Code|po}} - dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku,
* {{Code|u}} (pzestarzałe) lub {{Code|uri}} - jeśli niepuste, wtedy traktuj adres w linku wewnętrznym, jako adres URL, czyli on jest tak kodowany.
----
Parametry w wersji skróconej są jedynie przestarzałe dla nazwy wersji pełnej szablonu {{s|LinkURL}}, a nie są, gdy używamy przekierowania do tego szablonu w postaci {{s|Lz}}.
----
----
Jeżeli parametr {{Code|strona}} jest adresem URL, to należy ewentualnie go używać jedynie z argumentem {{Code|nazwa}}.
W przypadku linków zewnętrznych nazwa linku jest tworzona automatycznie na podstawie parametru {{Code|strona}}, gdy nie podano zmiennej {{Code|nazwa}}. Jeżeli ona jest pusta, to link wyświetla automatyczny numerek, tak jak przy zwykłych tych linkach. A dla linku wewnętrznego, parametr {{Code|nazwa}}, czy jest pusty, czy nie podany, to i tak wyświetla się nazwa linku (bez numerka).
----
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} i {{Parametr|bez przetwarzania|tak}}, które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego, a także parametr: {{Parametr|analiza|tak}} ({{Parametr|a}}), do głębszego przetwarzania linkowego, ważniejszym od tego jest wcześniejszy ostatni parametr.
== Przykłady ==
; Możliwe poniższe warianty przykładów tego szablonu symbolizują na czym on polega, jak się powinno go używać.{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna}} → Wynik: {{lz|s=Fizyka teoretyczna}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|n=Dział fizyki}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}w|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=w|n=Dział fizyki}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=w|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}w|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=w|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}Fizyka teoretyczna|w{{=}}wiki|w{{=}}wiki|n{{=}}Dział fizyki}} → Wynik: {{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=Fizyka teoretyczna|w=wiki|n=Dział fizyki}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/wiki/Szablon:Link wewnętrzny?action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/wiki/Szablon:Link wewnętrzny?action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny|w=wiki|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}/w/index.php?title{{=}}Szablon:Link wewnętrzny&action{{=}}edit#Obsługa|w{{=}}wiki|n{{=}}Szablon Link wewnętrzny}} → Wynik: {{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=/w/index.php?title=Szablon:Link wewnętrzny&action=edit#Obsługa|w=wiki|n=Szablon Link wewnętrzny}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|klucz projektu{{=}}en:w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|klucz projektu=en:w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|miano przestrzeni nazw{{=}}Project|s{{=}}FAQ/Readers|c{{=}}action{{=}}edit|g{{=}}What is Wikipedia?|kj{{=}}en|kp{{=}}w|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|miano przestrzeni nazw=Project|s=FAQ/Readers|c=action=edit|g=What is Wikipedia?|kj=en|kp=w|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action{{=}}edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/wiki/Wikipedia:FAQ/Readers?action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers |n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action{{=}}edit|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
* Wikikod: {{s|lz|s{{=}}//en.wikipedia.org/w/index.php?title{{=}}Wikipedia:FAQ/Readers&action{{=}}edit#What_is_Wikipedia?|n{{=}}Pomoc dla użytkowników angielskiej Wikipedii}} → Wynik: {{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//en.wikipedia.org/w/index.php?title=Wikipedia:FAQ/Readers&action=edit#What_is_Wikipedia?|n=Pomoc dla użytkowników angielskiej Wikipedii}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n{{=}}Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/wiki/Archaea?action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/wiki/Archaea?action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}//species.wikimedia.org/w/index.php?title{{=}}Archaea&action{{=}}edit#Taksonawigacja|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}}
* Wikikod: {{s|lz|s{{=}}//lua.org.pl/5.2/manual.html#8.3|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=//lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html|n=Język Lua 5.2}}}}}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://lua.org.pl/5.2/manual.html#8.3</nowiki>|n{{=}}Język Lua 5.2}} → Wynik: {{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://lua.org.pl/5.2/manual.html#8.3|n=Język Lua 5.2}}}}}}
{{Hr}}{{Hr}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
{{Hr}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit|n=Gatunek bakterii Archaea}}}}}}
* Wikikod: {{s|lz|s{{=}}<nowiki>http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja</nowiki>|n{{=}}Gatunek bakterii Archaea}} → Wynik: {{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}} → Kod: {{Nowiki|{{WydobądźLinki|{{lz|s=http://species.wikimedia.org/w/index.php?title=Archaea&action=edit#Taksonawigacja|n=Gatunek bakterii Archaea}}}}}}
== Błędy ==
Błędy należy zgłaszać na stronie {{Kwestie techniczne}}.
== Parametry szablonu ({{Strukturyzacja Wizualnego Edytora}}) ==
<templatedata>
{
"params": {
"miano przestrzeni nazw": {
"aliases": [
"przestrzeń"
],
"description": "Przestrzeń nazw, do której ma zaliczyć stronę.",
"type": "string",
"suggested": true
},
"strona": {
"description": "Nazwa strony, bez przestrzeni nazw. Jeżeli parametr \"strona\" jest adresem URL, to należy ewentualnie go używać jedynie z argumentem \"nazwa\". ",
"type": "wiki-page-name",
"required": true
},
"nagłówek": {
"description": "Nagłówek strony.",
"type": "string"
},
"klucz projektu": {
"description": "Klucz projektu, używany zamiast: \"kod języka\" i \"kod projektu\"."
},
"kod języka": {
"description": "Kod języka, używany zamiast \"Klucz projektu\"."
},
"kod projektu": {
"description": "Kod projektu, używany zamiast \"klucz projektu\"."
},
"nazwa": {
"description": "Nazwa wyświetlana linku.",
"type": "string",
"suggested": true
},
"parametry": {
"description": "Parametry strony.",
"type": "line",
"suggested": true
},
"za": {
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po nazwie linku.",
"type": "string"
},
"po": {
"description": "Dokończenie nazwy linku, poprzez umieszczenie tego napisu bezpośrednio po linku.",
"type": "string"
}
},
"description": "Szablon tworzy adres strony URL i tworzy z niego link o podanej nazwie wyświetlanej przez szablon. Też można bezpośrednio wsadzić do tego sam adres URL, nie za pomocą jego elementów. Jest to szablon linków inteligentnych kolorujących linki w zależności do jakiej kategorii one należą, do tego celu używa Wikidane.\n\nSzablon tworzy link wewnętrzny, gdy podano adres projektu siostrzanego lub językowego Wikibooks, bez parametrów, a link zewnętrzny, gdy są parametry, lub URL.\n\nW przypadku projektów MediaWiki, gdy podano parametr z wartością | wersja linku = w lub | wersja linku = wiki, to szablon generuje link zewnętrzny kolejno w postaci ../w/.., i ../wiki/... ",
"paramOrder": [
"miano przestrzeni nazw",
"strona",
"parametry",
"nagłówek",
"klucz projektu",
"kod języka",
"kod projektu",
"nazwa",
"za",
"po"
]
}
</templatedata>
== Zobacz też ==
{{Link wewnętrzny/opis/Zobacz też}}
{{Szablony linków wewnątrz- i między-serwisowych}}
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
{{Kategoria|Linki z opcją do zewnętrznych serwisów}}
</includeonly>
54rzx7k7vlnpl2fmmszxc27ja332vmc
Wikipedysta:Persino/vector-2022.css
2
58973
553248
541418
2026-08-25T06:31:14Z
Persino
2851
553248
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
e79rynw2ss60ky1sjsjh0ewsyopwhxf
Szablon:Tabela nawigacyjna/styles.css
10
59605
553234
553076
2026-08-25T05:59:37Z
Persino
2851
553234
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
tdc3z3v744jgjsaa2csxad4c9d7teyh
553239
553234
2026-08-25T06:16:27Z
Persino
2851
553239
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
word-wrap: break-word;
word-break: break-word;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
2kuy8xyifse1vm075po5kdpckzy6sbw
553240
553239
2026-08-25T06:18:46Z
Persino
2851
553240
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
word-wrap: break-word !important;
word-break: break-word !important;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
kt31wc75xunmqg2l6kdiv2d1oq8oslr
553241
553240
2026-08-25T06:21:01Z
Persino
2851
553241
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna.szerokość > *{
word-wrap: break-word;
word-break: break-word;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
nmglz3xxm7c8gouyrk5u3cg0gakpkpu
553242
553241
2026-08-25T06:22:33Z
Persino
2851
553242
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna.szerokość,
table.tabela_nawigacyjna.szerokość *{
word-wrap: break-word;
word-break: break-word;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
qkukviyla0tjx1f0td7ejrv7sje8zr9
553243
553242
2026-08-25T06:23:44Z
Persino
2851
553243
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna.szerokość,
table.tabela_nawigacyjna.szerokość *{
word-wrap: break-word !important;
word-break: break-word !important;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
r61tgk4oy5zxxtc4ahoaw6t01vrpey5
553245
553243
2026-08-25T06:26:13Z
Persino
2851
553245
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna *{
word-wrap:break-word !important;
word-break:break-word !important;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
oj4ohiis3vsqvydwpow5w4upe0t6m2e
553246
553245
2026-08-25T06:28:26Z
Persino
2851
553246
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
body table.tabela_nawigacyjna,
body table.tabela_nawigacyjna *{
word-wrap:break-word;
word-break:break-word;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
sohl9mgyriic012m0eog7ri01ccg0n5
553247
553246
2026-08-25T06:30:00Z
Persino
2851
553247
sanitized-css
text/css
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr,
table.tabela_nawigacyjna > tbody > tr > th,
table.tabela_nawigacyjna > tbody > tr > td{
width:100%;
max-width:100%;
display:block;
box-sizing:border-box;
}
table.tabela_nawigacyjna{
width:auto;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna > tbody,
table.tabela_nawigacyjna > tbody > tr{
border:0;
}
table.tabela_nawigacyjna > tbody > tr:last-child > th,
table.tabela_nawigacyjna > tbody > tr:last-child > td{
border-top:0;
}
table.tabela_nawigacyjna.szerokość{
display:flex;
flex-direction:row;
width:auto;
margin-left:0;
margin-right:0;
margin-top:0.2em;
margin-bottom:0;
}
table.tabela_nawigacyjna,
table.tabela_nawigacyjna *{
word-wrap:break-word;
word-break:break-word;
}
table.tabela_nawigacyjna.szerokość > tbody{
display:table;
}
table.tabela_nawigacyjna.szerokość > tbody,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
table.tabela_nawigacyjna.szerokość > tbody > tr,
hr + table.tabela_nawigacyjna,
hr + style + table.tabela_nawigacyjna,
hr + link + table.tabela_nawigacyjna{
margin-top:0;
}
table.tabela_nawigacyjna:last-child{
margin-bottom:0;
}
@media all and (min-width:745px) and (min-device-width: 745px) and (min-device-height: 745px){
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child ~ tr{
animation: nie_hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:hover ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible.collapsed > tbody > tr:first-child:not(:hover) ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child ~ tr{
animation: hover_odkrywca 0s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:hover ~ tr{
animation: nie_hover_odkrywca 5s forwards;
}
html.client-nojs table.collapsible:not(.collapsed) > tbody > tr:first-child:not(:hover) ~ tr{
animation: hover_odkrywca 0s forwards;
}
}
@keyframes hover_odkrywca {
0% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
99% {
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
100%{
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
}
@keyframes nie_hover_odkrywca {
0% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
99% {
opacity:1;
visibility:visible;
height:auto;
overflow:visible;
position:relative;
}
100%{
opacity:0;
visibility:hidden;
height:0;
overflow:hidden;
position:absolute;
}
}
/*{{Kategoria|Szablony - arkusze stylów}}*/
sgbu5uv70mjtvn5j7uqx93ssakac1c3
Wikibooks:Mechanizm MediaWiki
4
60755
553272
553072
2026-08-25T08:13:45Z
Persino
2851
/* Szablony */
553272
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 {{NS|pk=mj|w=tak|l=tak}}.
== Szablony mechanizmu '''MediaWiki''' ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NS|p=mj|l=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/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{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}}), {{m|Html}} ({{lru|Moduły/Html}}), {{m|Nazwy}} ({{lru|Moduły/Nazwy}}), {{m|Książkowe}} ({{lru|Moduły/Książkowe}}), {{m|Pudełko}} ({{lru|Moduły/Pudełko}}), {{m|Ramka}} ({{lru|Moduły/Ramka}}), {{m|Specjalne}} ({{lru|Moduły/Specjalne}}), {{m|StronicowyParser}} ({{lru|Moduły/StronicowyParser}}), {{m|Szeregi}} ({{lru|Moduły/Szeregi}}), {{m|Szablonowe}} ({{lru|Moduły/Szablonowe}}), {{m|Techniczne}} ({{lru|Moduły/Techniczne}}), {{m|Wiki}} ({{lru|Moduły/Wiki}}).
* Moduły standardowe
** {{m|Kategorie}} ({{lru|Moduły/Kategorie}}), {{m|Linki}} ({{lru|Moduły/Linki}}), {{m|Łatki}} ({{lru|Moduły/Łatki}}), {{m|Skrót}} ({{lru|Moduły/Skrót}}), {{m|Sprawdź}} ({{lru|Moduły/Sprawdź}}).
* Specjalistyczne
** {{m|Tabela}} ({{lru|Moduły/Tabela}}), {{m|Sekcja referencyjna}} ({{lru|Moduły/Sekcja referencyjna}}), {{m|Licencja}} ({{lru|Moduły/Licencja}}), {{m|Przypisy}} ({{lru|Moduły/Przypisy}}), {{m|Dopracować}} ({{lru|Moduły/Dopracować}}).
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
cguzu3ueutbw249gxwojg7jl2l8m7or
553273
553272
2026-08-25T08:14:23Z
Persino
2851
553273
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 {{NS|pk=mj|w=tak|l=tak}}.
== Szablony '''mechanizmu MediaWiki''' ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NS|p=mj|l=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/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{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}}), {{m|Html}} ({{lru|Moduły/Html}}), {{m|Nazwy}} ({{lru|Moduły/Nazwy}}), {{m|Książkowe}} ({{lru|Moduły/Książkowe}}), {{m|Pudełko}} ({{lru|Moduły/Pudełko}}), {{m|Ramka}} ({{lru|Moduły/Ramka}}), {{m|Specjalne}} ({{lru|Moduły/Specjalne}}), {{m|StronicowyParser}} ({{lru|Moduły/StronicowyParser}}), {{m|Szeregi}} ({{lru|Moduły/Szeregi}}), {{m|Szablonowe}} ({{lru|Moduły/Szablonowe}}), {{m|Techniczne}} ({{lru|Moduły/Techniczne}}), {{m|Wiki}} ({{lru|Moduły/Wiki}}).
* Moduły standardowe
** {{m|Kategorie}} ({{lru|Moduły/Kategorie}}), {{m|Linki}} ({{lru|Moduły/Linki}}), {{m|Łatki}} ({{lru|Moduły/Łatki}}), {{m|Skrót}} ({{lru|Moduły/Skrót}}), {{m|Sprawdź}} ({{lru|Moduły/Sprawdź}}).
* Specjalistyczne
** {{m|Tabela}} ({{lru|Moduły/Tabela}}), {{m|Sekcja referencyjna}} ({{lru|Moduły/Sekcja referencyjna}}), {{m|Licencja}} ({{lru|Moduły/Licencja}}), {{m|Przypisy}} ({{lru|Moduły/Przypisy}}), {{m|Dopracować}} ({{lru|Moduły/Dopracować}}).
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
7xfwi4s62qamkvp4oicae5741o9oroz
553274
553273
2026-08-25T08:14:58Z
Persino
2851
/* Szablony mechanizmu MediaWiki */
553274
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 {{NS|pk=mj|w=tak|l=tak}}.
== Szablony, '''mechanizmu MediaWiki''', wikikodu ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NS|p=mj|l=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/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{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}}), {{m|Html}} ({{lru|Moduły/Html}}), {{m|Nazwy}} ({{lru|Moduły/Nazwy}}), {{m|Książkowe}} ({{lru|Moduły/Książkowe}}), {{m|Pudełko}} ({{lru|Moduły/Pudełko}}), {{m|Ramka}} ({{lru|Moduły/Ramka}}), {{m|Specjalne}} ({{lru|Moduły/Specjalne}}), {{m|StronicowyParser}} ({{lru|Moduły/StronicowyParser}}), {{m|Szeregi}} ({{lru|Moduły/Szeregi}}), {{m|Szablonowe}} ({{lru|Moduły/Szablonowe}}), {{m|Techniczne}} ({{lru|Moduły/Techniczne}}), {{m|Wiki}} ({{lru|Moduły/Wiki}}).
* Moduły standardowe
** {{m|Kategorie}} ({{lru|Moduły/Kategorie}}), {{m|Linki}} ({{lru|Moduły/Linki}}), {{m|Łatki}} ({{lru|Moduły/Łatki}}), {{m|Skrót}} ({{lru|Moduły/Skrót}}), {{m|Sprawdź}} ({{lru|Moduły/Sprawdź}}).
* Specjalistyczne
** {{m|Tabela}} ({{lru|Moduły/Tabela}}), {{m|Sekcja referencyjna}} ({{lru|Moduły/Sekcja referencyjna}}), {{m|Licencja}} ({{lru|Moduły/Licencja}}), {{m|Przypisy}} ({{lru|Moduły/Przypisy}}), {{m|Dopracować}} ({{lru|Moduły/Dopracować}}).
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
hy6gsc8cmcwp77wafw7garxfendyu14
553275
553274
2026-08-25T08:15:23Z
Persino
2851
/* Szablony, mechanizmu MediaWiki, wikikodu */
553275
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 {{NS|pk=mj|w=tak|l=tak}}.
== Szablony, '''mechanizmu MediaWiki''', wikikodu ==
Przedstawiamy tutaj w dwóch formach opis wszystkich szablonów, dostępnych na polskim {{NS|pk=mj|l=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/Informacje}}, {{lru|Szablony/PrzypisStrona}}, {{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}}), {{m|Html}} ({{lru|Moduły/Html}}), {{m|Nazwy}} ({{lru|Moduły/Nazwy}}), {{m|Książkowe}} ({{lru|Moduły/Książkowe}}), {{m|Pudełko}} ({{lru|Moduły/Pudełko}}), {{m|Ramka}} ({{lru|Moduły/Ramka}}), {{m|Specjalne}} ({{lru|Moduły/Specjalne}}), {{m|StronicowyParser}} ({{lru|Moduły/StronicowyParser}}), {{m|Szeregi}} ({{lru|Moduły/Szeregi}}), {{m|Szablonowe}} ({{lru|Moduły/Szablonowe}}), {{m|Techniczne}} ({{lru|Moduły/Techniczne}}), {{m|Wiki}} ({{lru|Moduły/Wiki}}).
* Moduły standardowe
** {{m|Kategorie}} ({{lru|Moduły/Kategorie}}), {{m|Linki}} ({{lru|Moduły/Linki}}), {{m|Łatki}} ({{lru|Moduły/Łatki}}), {{m|Skrót}} ({{lru|Moduły/Skrót}}), {{m|Sprawdź}} ({{lru|Moduły/Sprawdź}}).
* Specjalistyczne
** {{m|Tabela}} ({{lru|Moduły/Tabela}}), {{m|Sekcja referencyjna}} ({{lru|Moduły/Sekcja referencyjna}}), {{m|Licencja}} ({{lru|Moduły/Licencja}}), {{m|Przypisy}} ({{lru|Moduły/Przypisy}}), {{m|Dopracować}} ({{lru|Moduły/Dopracować}}).
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategoria|Pomoc - Problemy wywołań mechanizmu MediaWiki|sortuj spacją=tak}}<!--
--></noinclude>
thhaovz4w6psa6xcxmbor5y4weqjub7
Wikibooks:Moduły
4
60758
553087
553074
2026-08-24T14:06:45Z
Persino
2851
553087
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|limit=2}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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 - rodzaje ==
=== Moduły podstawowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły podstawowe
| spis =
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Książkowe|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}
=== Moduły standardowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły standardowe
| spis =
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}
=== Moduły specjalistyczne ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły specjalistyczne
| spis =
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
Opisy modułówi ich funkcji;
* Moduły podstawowe
** {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
** {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
** {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
** {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lru|Moduły/Szeregi}} - 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.
** {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
** {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
** {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
** {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
** {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
itrny5jri31wj5wwy4yw8k9r6ywsi8r
553088
553087
2026-08-24T14:07:02Z
Persino
2851
553088
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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 - rodzaje ==
=== Moduły podstawowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły podstawowe
| spis =
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Książkowe|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}
=== Moduły standardowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły standardowe
| spis =
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}
=== Moduły specjalistyczne ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły specjalistyczne
| spis =
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
Opisy modułówi ich funkcji;
* Moduły podstawowe
** {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
** {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
** {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
** {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lru|Moduły/Szeregi}} - 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.
** {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
** {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
** {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
** {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
** {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
okinxhl4pf9doum7h2y8l5vke2v7sz5
553089
553088
2026-08-24T14:10:09Z
Persino
2851
553089
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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 - rodzaje ==
=== Moduły podstawowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły podstawowe
| spis =
{{SpisTreści|Parametry|poziom=4}}
{{SpisTreści|Html|poziom=4}}
{{SpisTreści|Książkowe|poziom=4}}
{{SpisTreści|Nazwy|poziom=4}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=5}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=5}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=5}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=5}}
{{SpisTreści|Nazwy/Np|poziom=5}}
{{SpisTreści|Pudełko|poziom=4}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=5}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=5}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=5}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=5}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=5}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=5}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=5}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=5}}
{{SpisTreści|Ramka|poziom=4}}
{{SpisTreści|Specjalne|poziom=4}}
{{SpisTreści|StronicowyParser|poziom=4}}
{{SpisTreści|StronicowyParser/Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=5}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=5}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=5}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=5}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=5}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=5}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=5}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=5}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=5}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=6}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=6}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=5}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=5}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=5}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=5}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=5}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=5}}
{{SpisTreści|Szeregi|poziom=4}}
{{SpisTreści|Szablonowe|poziom=4}}
{{SpisTreści|Techniczne|poziom=4}}
{{SpisTreści|Wiki|poziom=4}}
}}
=== Moduły standardowe ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły standardowe
| spis =
{{SpisTreści|Kategorie|poziom=4}}
{{SpisTreści|Linki|poziom=4}}
{{SpisTreści|Łatki|poziom=4}}
{{SpisTreści|Skrót|poziom=4}}
{{SpisTreści|Strony|poziom=4}}
{{SpisTreści|Sprawdź|poziom=4}}
}}
=== Moduły specjalistyczne ===
{{Tabela nawigacyjna
| klasa = szerokość
| styl =
| tytuł = Spis treści poszczególnych opisów modułów - Moduły specjalistyczne
| spis =
{{SpisTreści|Tabela|poziom=4}}
{{SpisTreści|Sekcja referencyjna|poziom=4}}
{{SpisTreści|Plik|poziom=4}}
{{SpisTreści|Licencja|poziom=4}}
{{SpisTreści|Przypisy|poziom=4}}
{{SpisTreści|Dopracować|poziom=4}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
Opisy modułówi ich funkcji;
* Moduły podstawowe
** {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
** {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
** {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
** {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lru|Moduły/Szeregi}} - 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.
** {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
** {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
** {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
** {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
** {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
4onej5jetxnghb9i3g6hlsmal7uebzi
553092
553089
2026-08-24T14:32:07Z
Persino
2851
553092
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
Opisy modułówi ich funkcji;
* Moduły podstawowe
** {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
** {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
** {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
** {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
** {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
** {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
** {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
** {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
** {{lru|Moduły/Szeregi}} - 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.
** {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
** {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
** {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
* Moduły standardowe
** {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
** {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
** {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
** {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
** {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
* Specjalistyczne
** {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
** {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
** {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
** {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
6mxlua0lfa3a16tlzd3j8cmuzuwk70t
553117
553092
2026-08-24T17:41:58Z
Persino
2851
/* Spis treści */
553117
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
maasbgeosz0zaio772ppjrav48p9zei
553235
553117
2026-08-25T06:01:49Z
Persino
2851
553235
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły podstawowe
| spis =
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły standardowe
| spis =
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły specjalistyczne
| spis =
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
nc228lzsbwsgp5aqac1uhn3y234c6um
553236
553235
2026-08-25T06:04:54Z
Persino
2851
/* Nawigacja modułowa */
553236
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły podstawowe
| styl tytułu = text-align:left
| spis =
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły standardowe
| styl tytułu = text-align:left
| spis =
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Moduły specjalistyczne
| styl tytułu = text-align:left
| spis =
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
9mc1q2tbfvqjrkf6bh5n4fdzkl9i2wn
553237
553236
2026-08-25T06:08:03Z
Persino
2851
/* Nawigacja modułowa */
553237
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów podstawowych
| styl tytułu =
| spis =
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów standardowych
| styl tytułu =
| spis =
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów specjalistycznych
| styl tytułu =
| spis =
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
patmicl7hl5p77xa68bxzd34agy3x3r
553238
553237
2026-08-25T06:12:11Z
Persino
2851
/* Nawigacja modułowa */
553238
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów podstawowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów standardowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów specjalistycznych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
616xm9h850ukaf7uo4tva1gzr8nk753
553244
553238
2026-08-25T06:24:50Z
Persino
2851
553244
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów podstawowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów standardowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści poszczególnych opisów modułów specjalistycznych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
i795bwl1yjz9414dj6gin3g9frcde5c
553249
553244
2026-08-25T06:35:04Z
Persino
2851
/* Nawigacja modułowa */
553249
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści modułów podstawowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści modułów standardowych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści modułów specjalistycznych
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
edwv3hxef3zdzmq6v88s8akcj8f1b5n
553250
553249
2026-08-25T06:36:23Z
Persino
2851
/* Nawigacja modułowa */
553250
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Nawigacja modułowa ==
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści - podstawowe
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Parametry|poziom=3}}
{{SpisTreści|Html|poziom=3}}
{{SpisTreści|Nazwy|poziom=3}}
{{SpisTreści|Nazwy/Tom I|3=Nazwy - Tom I|poziom=4}}
{{SpisTreści|Nazwy/Tom II|3=Nazwy - Tom II|poziom=4}}
{{SpisTreści|Nazwy/Tom III|3=Nazwy - Tom III|poziom=4}}
{{SpisTreści|Nazwy/Tom IV|3=Nazwy - Tom IV|poziom=4}}
{{SpisTreści|Nazwy/Np|poziom=4}}
{{SpisTreści|Pudełko|poziom=3}}
{{SpisTreści|Pudełko/Tom I|nazwa=Pudełko - Tom I|poziom=4}}
{{SpisTreści|Pudełko/Tom II|nazwa=Pudełko - Tom II|poziom=4}}
{{SpisTreści|Pudełko/Tom III|nazwa=Pudełko - Tom III|poziom=4}}
{{SpisTreści|Pudełko/Tom IV|nazwa=Pudełko - Tom IV|poziom=4}}
{{SpisTreści|Pudełko/Tom V|nazwa=Pudełko - Tom V|poziom=4}}
{{SpisTreści|Pudełko/Pomocne|nazwa=Pudełko - Pomocne|poziom=4}}
{{SpisTreści|Pudełko/Potrzebne|nazwa=Pudełko - Potrzebne|poziom=4}}
{{SpisTreści|Pudełko/ParametryCechy|nazwa=Pudełko - Parametry Cechy|poziom=4}}
{{SpisTreści|Ramka|poziom=3}}
{{SpisTreści|Specjalne|poziom=3}}
{{SpisTreści|StronicowyParser|poziom=3}}
{{SpisTreści|StronicowyParser/Tom I|poziom=4}}
{{SpisTreści|StronicowyParser/AnalizaSpisuRzeczy|nazwa=AnalizaSpisuRzeczy|poziom=4}}
{{SpisTreści|StronicowyParser/GłównaFunkcjaZbieraniaDanychStron|nazwa=GłównaFunkcjaZbieraniaDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/Kategorie|nazwa=Kategorie|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaArtykułówKsiążek|nazwa=NumerLubNazwaArtykułówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerLubNazwaNagłówkówKsiążek|nazwa=NumerLubNazwaNagłówkówKsiążek|poziom=4}}
{{SpisTreści|StronicowyParser/NumerObiektu|nazwa=NumerObiektu|poziom=4}}
{{SpisTreści|StronicowyParser/NumeracjaObiektówStron|nazwa=NumeracjaObiektówStron|poziom=4}}
{{SpisTreści|StronicowyParser/Potrzebne|nazwa=Potrzebne|poziom=4}}
{{SpisTreści|StronicowyParser/Problemy|nazwa=Problemy|poziom=4}}
{{SpisTreści|StronicowyParser/Rozdziały|nazwa=Rozdziały|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści|nazwa=SpisTreści|poziom=4}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom I|nazwa=SpisTreści - Tom I|poziom=5}}
{{SpisTreści|StronicowyParser/SpisTreści/Tom II|nazwa=SpisTreści - Tom II|poziom=5}}
{{SpisTreści|StronicowyParser/StronaSubst|nazwa=StronaSubst|poziom=4}}
{{SpisTreści|StronicowyParser/Tekst|nazwa=Tekst|poziom=4}}
{{SpisTreści|StronicowyParser/ZbieranieDanychStron|nazwa=ZbieranieDanychStron|poziom=4}}
{{SpisTreści|StronicowyParser/SzablonyTekstu|nazwa=SzablonyTekstu|poziom=4}}
{{SpisTreści|StronicowyParser/informacje|nazwa=informacje|poziom=4}}
{{SpisTreści|StronicowyParser/obiekty|nazwa=obiekty|poziom=4}}
{{SpisTreści|Szeregi|poziom=3}}
{{SpisTreści|Szablonowe|poziom=3}}
{{SpisTreści|Techniczne|poziom=3}}
{{SpisTreści|Wiki|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści - standardowe
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Kategorie|poziom=3}}
{{SpisTreści|Linki|poziom=3}}
{{SpisTreści|Łatki|poziom=3}}
{{SpisTreści|Skrót|poziom=3}}
{{SpisTreści|Strony|poziom=3}}
{{SpisTreści|Sprawdź|poziom=3}}
}}}}
{{Tabela nawigacyjna
| klasa = szerokość
| tytuł = Spis treści - specjalistyczne
| styl tytułu =
| spis =
{{Kolumny|2|2=
{{SpisTreści|Tabela|poziom=3}}
{{SpisTreści|Sekcja referencyjna|poziom=3}}
{{SpisTreści|Plik|poziom=3}}
{{SpisTreści|Licencja|poziom=3}}
{{SpisTreści|Przypisy|poziom=3}}
{{SpisTreści|Dopracować|poziom=3}}
}}
}}
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
bro5xn82w09h079gk0z54ijrgcof3lu
553251
553250
2026-08-25T06:55:51Z
Persino
2851
553251
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
rv8lpkw1i0pbq7fofuomdj8klwdj0b0
553252
553251
2026-08-25T06:56:09Z
Persino
2851
553252
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
* {{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
hzjkkeqzt07n8der8zf4jwefjn3dicm
553253
553252
2026-08-25T06:56:21Z
Persino
2851
553253
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 zwinięty|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
rv8lpkw1i0pbq7fofuomdj8klwdj0b0
553254
553253
2026-08-25T06:58:25Z
Persino
2851
553254
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
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.
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
maasbgeosz0zaio772ppjrav48p9zei
553255
553254
2026-08-25T07:09:39Z
Persino
2851
553255
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
Strona zawiera opis technologii, programowania pomocniczego wikikodu i poszczególnych modułów, bez jego pod. W poszczególnych modułach, ewentualnie, możemy wejść do dalszych spisów, tzn. do ich tomów.
== Technologia modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
Przedstawimy tu technologię programowania języka pomocniczego wikikodu '''Mechanizmu MediaWiki'''.
=== Wywołania ===
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.
=== Parametry ===
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..
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
h0vthc0xsscvzcozc12sbikmgwth1rr
553270
553255
2026-08-25T08:05:59Z
Persino
2851
553270
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
Strona zawiera opis technologii, programowania pomocniczego wikikodu i poszczególnych modułów, bez jego pod. To jest ogólny spis i opis wszystkich podstawowych modułów, a w poszczególnych podmodułach, ewentualnie, możemy wejść do dalszych spisów, tzn. do ich, tzw. tomów, itp., lub do bezpośredniego opisu poszczególnych funkcji.
== Technologia modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
Przedstawimy tu technologię programowania języka pomocniczego wikikodu '''Mechanizmu MediaWiki'''.
=== Wywołania ===
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.
=== Parametry ===
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..
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
g5b076edmjj5ln4s4mqptawqmo6e3gw
553271
553270
2026-08-25T08:12:28Z
Persino
2851
553271
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|limit=3}}
{{Dopracować|język|styl|wikikod|format|Po ukończeniu opisu wszystkich modułów zostanie sprawdzona jego merytoryczna poprawność.}}
Strona zawiera opis technologii, programowania pomocniczego wikikodu i poszczególnych modułów, bez jego pod. To jest ogólny spis i opis wszystkich podstawowych, i nie tylko, modułów, a w poszczególnych podmodułach, ewentualnie, możemy wejść do dalszych spisów, tzn. do ich, tzw. tomów, itp., lub do bezpośredniego opisu poszczególnych funkcji.
== Technologia modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ==
Przedstawimy tu technologię programowania języka pomocniczego wikikodu '''Mechanizmu MediaWiki'''.
=== Wywołania ===
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.
=== Parametry ===
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..
== Spis treści ==
{{Osobny artykuł|Wikibooks:Mechanizm MediaWiki|obserwowane=Mechanizmy MediaWiki}}
{{Kolumny|2|2=
=== Moduły podstawowe ===
* {{lru|Moduły/Parametry}} - na operacjach z parametrami funkcji języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
* {{lru|Moduły/Html}} - na operacjach specjalnych z tekstami zawierający znaki HTML i na adresach URL.
* {{lru|Moduły/Nazwy}} - operujących na nazwach MediaWiki projektu.
* {{lru|Moduły/Książkowe}} - na nazwach zawierający specjalne znaki HTML i też odkodowanie ich z nich.
* {{lru|Moduły/Pudełko}} - opakowanych wewnątrz wikikodu w szablony, którego wynikiem są różne nazwy.
* {{lru|Moduły/Ramka}} - ramkowanych, w ramach których są wykonywane pewne operacje.
* {{lru|Moduły/Specjalne}} - do specjalnych zastosowań operacji na obiektach.
* {{lru|Moduły/StronicowyParser}} - stronicowego parsera do numeracji obiektów i odniesień do nich, także operowanie na tak zebranych danych.
* {{lru|Moduły/Szeregi}} - 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.
* {{lru|Moduły/Szablonowe}} - służących do parsowania tekstu nawet z podanych stron.
* {{lru|Moduły/Techniczne}} - do operacji technicznych na tekście.
* {{lru|Moduły/Wiki}} - robiący czynności na obiektach wikidanych.
=== Moduły standardowe ===
* {{lru|Moduły/Kategorie}} - operujących na kategoriach (w przestrzeni {{Np|Category|link=tak}}) lub z tekstem ze zgłoszonymi tymi kategoriami.
* {{lru|Moduły/Linki}} - obsługujących różnego rodzaju linki.
* {{lru|Moduły/Łatki}} - łatające braki w mechanizmie MediaWiki.
* {{lru|Moduły/Skrót}} - łatające szablony: {{s|Kategoria}} i {{s|Kategorie}}, do wywołań w innych szablonach.
* {{lru|Moduły/Sprawdź}} - oferujące sprawdzanie danych uzyskanych ze strony.
=== Specjalistyczne ===
* {{lru|Moduły/Tabela}} - tworzące wiki-tabelę ze sprawdzeniem rodzaju parametrów.
* {{lru|Moduły/Sekcja referencyjna}} - linków inteligentnych sekcji referencyjnej używanej z podaniem nazwy artykułu bez nazwy książki.
* {{lru|Moduły/Licencja}} - wyświetlania licencji książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Przypisy}} - wyświetlania przypisów artykułów lub książki z określonym oczekiwanym lub nie nagłówkiem.
* {{lru|Moduły/Dopracować}} - wyświetlania okienka {{s|mbox}} z komunikatem, w zależności od problemu.
}}
{{BrClear}}
<noinclude><!--
-->{{StandardowaStronaKoniec}}<!--
-->{{Kategorie
| Opisy funkcji, w Lua w Scribunto, w modułach | sortuj spacją 1 = tak
| Pomoc - Problemy wywołań mechanizmu MediaWiki
}}<!--
--></noinclude>
9wf5nozv5r0qgkg9se1vn8c3d2mdb66
Wikibooks:Moduły/Nazwy/Np
4
62921
553120
552182
2026-08-24T17:59:11Z
Persino
2851
/* Właściwości i ich wartości, zmiennych głównych tego modułu nazw szczególnych */
553120
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|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ływany raz na całą stronę. Moduł mieści się na stronie: {{ld2|Nazwy/Np}}.
== Wywołanie modułu ==
Moduł wywołujemy, gdy napiszemy:
<syntaxhighlight lang="lua">
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
</syntaxhighlight>
Tego modułu nie powinno się wywoływać, jako:
<syntaxhighlight lang="lua">
local nazwy_np_modul=require("Module:Nazwy/Np");
</syntaxhighlight>
ponieważ to powoduje kilkakrotne liczenie tych samych zmiennych w typ module, np. te same wywołanie funkcji: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}}, tzn.:
<syntaxhighlight lang="lua">
local p={};
local kanoniczna={Main="",...};
p.kanoniczna=kanoniczna;
...
local nazwy_modul=require("Module:Nazwy");
p.Main=nazwy_modul.Np{nazwa=kanoniczna.Main,};
p.MainDisplayName=nazwy_modul.Np{nazwa=kanoniczna.Main,["wyświetlana"]="tak",};
...
return p;
</syntaxhighlight>
== Nazwy kanoniczne ==
Dostępne nazwy kanoniczne przestrzeni nazw, mają ogólny adres:
<syntaxhighlight lang="lua">
local kanoniczna=nazwy_np_modul.kanoniczna;
local <nazwa przestrzeni nazw kanoniczna> = kanoniczna.<nazwa właściwości symbolizującą przestrzeń nazw>;
</syntaxhighlight>
=== Przykład uzyskiwania nazwy kanonicznej ===
<syntaxhighlight lang="lua">
local MainDisplayName = kanoniczna.MainDisplayName; -- Wartością tej zmiennej jest: "(main)".
</syntaxhighlight>
=== Właściwości i ich wartości, zmiennej „kanoniczna” modułu nazw szczególnych ===
Dostępne na polskim {{NS|w=tak|l=tak}} przestrzenie nazw kanoniczne podane w tabelce:
{{Tabela|klasa=wikitable tekst-centruj-td|liczba wierszy=16|liczba kolumn=4
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 2 | komórka 1_3 = Przestrzeń dyskusji | nagłówek 1_3 = tak | kolumny 1_3 = 2
| komórka 2_1 = Właściwość | nagłówek 2_1 = tak | komórka 2_2 = Wartość | nagłówek 2_2 = tak | komórka 2_3 = Właściwość | nagłówek 2_3 = tak | komórka 2_4 = Wartość | nagłówek 2_4 = tak
| komórka 3_1 = Main | komórka 3_2 = - | komórka 3_3 = Talk | wiersze 3_3 = 2 | komórka 3_4 = Talk | wiersze 3_4 = 2
| komórka 4_1 = MainDisplayName | komórka 4_2 = (main)
| komórka 5_1 = Wikijunior | komórka 5_2 = Wikijunior | komórka 5_3 = Wikijunior_talk | komórka 5_4 = Wikijunior talk
| komórka 6_1 = User | komórka 6_2 = User | komórka 6_3 = User_talk | komórka 6_4 = User talk
| komórka 7_1 = File | komórka 7_2 = File | komórka 7_3 = File_talk | komórka 7_4 = File talk
| komórka 8_1 = Media | komórka 8_2 = Media | komórka 8_3 = - | kolumny 8_3 = 2
| komórka 9_1 = Category | komórka 9_2 = Category | komórka 9_3 = Category_talk | komórka 9_4 = Category talk
| komórka 10_1 = Template | komórka 10_2 = Template | komórka 10_3 = Template_talk | komórka 10_4 = Template talk
| komórka 11_1 = Module | komórka 11_2 = Module | komórka 11_3 = Module_talk | komórka 11_4 = Module talk
| komórka 12_1 = Project | komórka 12_2 = Project | komórka 12_3 = Project_talk | komórka 12_4 = Project talk
| komórka 13_1 = Wikibooks | komórka 13_2 = Wikibooks | komórka 13_3 = Wikibooks_talk | komórka 13_4 = Wikibooks talk
| komórka 14_1 = Help | komórka 14_2 = Help | komórka 14_3 = Help_talk | komórka 14_4 = Help talk
| komórka 15_1 = MediaWiki | komórka 15_2 = MediaWiki | komórka 15_3 = MediaWiki_talk | komórka 15_4 = MediaWiki talk
| komórka 16_1 = Special | komórka 16_2 = Special | komórka 16_3 = - | kolumny 16_3 = 2
}}
Przede wszystkim właściwość i wartość właściwości zmiennej są takie same, uwzględniając, że w właściwości spacje są zastąpione dolnymi myślnikami, z wyjątkiem tym, że zmienna {{Code|MainDisplayName}} nie jest nazwą kanoniczną, a także jego wartość, prawdziwą wartością kanoniczną jest wartość pusta, co jest uwidocznione w następnym wyjątku w zmiennej {{Code|Main}}, którego wartością jest wartość pusta.
Zmienne: {{Code|Main}} i {{Code|MainDisplayName}}, wskazują na tą samą przestrzeń, którą jest wartość pusta, ona wskazuje na przestrzeń główną, którą możemy oznaczyć, jako po angielsku: {{Code|(main)}}, lub po polsku: {{Code|(główna)}}.
Zmienne: {{Code|Media}} i {{Code|Special}}, nie mają swojego odpowiednika dla przestrzeni dyskusji.
== Nazwy niekanoniczne przestrzeni nazw ==
Dostępne nazwy niekanoniczne przestrzeni nazw, mają ogólny adres:
<syntaxhighlight lang="lua">
local <nazwa przestrzeni nazw kanoniczna> = nazwy_np_modul.<nazwa właściwości symbolizującą przestrzeń nazw>;
</syntaxhighlight>
=== Przykład uzyskiwania nazwy niekanonicznej ===
<syntaxhighlight lang="lua">
local MainDisplayName = nazwy_np_modul.MainDisplayName; -- Wartością tej zmiennej jest: "(główna)".
</syntaxhighlight>
=== Właściwości i ich wartości, zmiennych głównych tego modułu nazw szczególnych ===
Dostępne na polskim {{NS|w=tak|l=tak}} przestrzenie nazw niekanoniczne podane w tabelce:
{{Tabela|klasa=wikitable tekst-centruj-td|liczba wierszy=15|liczba kolumn=6
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 3 | komórka 1_4 = Przestrzeń dyskusji | nagłówek 1_4 = tak | kolumny 1_4 = 3
| komórka 2_1 = Właściwość | nagłówek 2_1 = tak | komórka 2_2 = Nazwa kanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Wartość | nagłówek 2_3 = tak | komórka 2_4 = Właściwość | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Wartość | nagłówek 2_6 = tak
| komórka 3_1 = Main | komórka 3_2 = - | komórka 3_3 = -| komórka 3_4 = Talk | wiersze 3_4 = 2 | komórka 3_5 = Talk | wiersze 3_5 = 2 | komórka 3_6 = Dyskusja | wiersze 3_6 = 2
| komórka 4_1 = MainDisplayName | komórka 4_2 = (main) | komórka 4_3 = (główna)
| komórka 5_1 = Wikijunior | komórka 5_2 = Wikijunior | komórka 5_3 = Wikijunior | komórka 5_4 = Wikijunior_talk | komórka 5_5 = Wikijunior talk | komórka 5_6 = Dyskusja Wikijuniora
| komórka 6_1 = User | komórka 6_2 = User | komórka 6_3 = Wikipedysta | komórka 6_4 = User_talk | komórka 6_5 = User talk | komórka 6_6 = Dyskusja wikipedysty
| komórka 7_1 = File | komórka 7_2 = File | komórka 7_3 = Plik | komórka 7_4 = File_talk | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku
| komórka 8_1 = Media | komórka 8_2 = Media | komórka 8_3 = Media | komórka 8_4 = - | kolumny 8_4 = 3
| komórka 9_1 = Category | komórka 9_2 = Category | komórka 9_3 = Kategoria | komórka 9_4 = Category_talk | komórka 9_5 = Category talk | komórka 9_6 = Dyskusja kategorii
| komórka 10_1 = Template | komórka 10_2 = Template | komórka 10_3 = Szablon | komórka 10_4 = Template_talk | komórka 10_5 = Template talk | komórka 10_6 = Dyskusja szablonu
| komórka 11_1 = Module | komórka 11_2 = Module | komórka 11_3 = Moduł | komórka 11_4 = Module_talk | komórka 11_5 = Module talk | komórka 11_6 = Dyskusja modułu
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = Wikibooks | komórka 12_4 = Wikibooks_talk | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja Wikibooks
| komórka 13_1 = Help | komórka 13_2 = Help | komórka 13_3 = Pomoc | komórka 13_4 = Help_talk | komórka 13_5 = Help talk | komórka 13_6 = Dyskusja pomocy
| komórka 14_1 = MediaWiki | komórka 14_2 = MediaWiki | komórka 14_3 = MediaWiki | komórka 14_4 = MediaWiki_talk | komórka 14_5 = MediaWiki talk | komórka 14_6 = Dyskusja MediaWiki
| komórka 15_1 = Special | komórka 15_2 = Special | komórka 15_3 = Specjalna | komórka 15_4 = - | kolumny 15_4 = 3
}}
Właściwości: {{Code|Main}} i {{Code|MainDisplayName}}, wskazują na tą samą przestrzeń o wartości pustej, której jest przestrzenią główną, o angielskiej nazwie kanonicznej: {{Code|(main)}}, a polskiej {{Code|(główna)}}.
Nazwy zmiennych przedmiotowych są przede wszystkim takie same jak kanoniczne z dwoma wyjątkami, a dla przestrzeni dyskusji nazwa właściwości jest z dolnym myślnikiem, a kanoniczna bez niego, z tylko ze spacją, z wyjątkiem dla zmiennej przestrzeni dyskusji {{Code|Talk}}, która jest bez dolnego myślnika. Wartość tych parametrów równa się o właściwościach o nazwie kanonicznej, ewentualnie z dolny myślnikiem, o wartości nazwie niekanonicznej, które są nazwami przestrzeni po polsku.
Zmienne: {{Code|Media}} i {{Code|Special}}, nie mają swojego odpowiednika dla przestrzeni dyskusji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
118hh44zymctp8u4s0a54yun7w0kozq
553121
553120
2026-08-24T18:02:41Z
Persino
2851
553121
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy/Np}}|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ływany raz na całą stronę. Moduł mieści się na stronie: {{ld2|Nazwy/Np}}.
== Wywołanie modułu ==
Moduł wywołujemy, gdy napiszemy:
<syntaxhighlight lang="lua">
local nazwy_np_modul=mw.loadData("Module:Nazwy/Np");
</syntaxhighlight>
Tego modułu nie powinno się wywoływać, jako:
<syntaxhighlight lang="lua">
local nazwy_np_modul=require("Module:Nazwy/Np");
</syntaxhighlight>
ponieważ to powoduje kilkakrotne liczenie tych samych zmiennych w typ module, np. te same wywołanie funkcji: {{Code|{{sr|#m.Np|p=Nazwy/Tom I}}}}, tzn.:
<syntaxhighlight lang="lua">
local p={};
local kanoniczna={Main="",...};
p.kanoniczna=kanoniczna;
...
local nazwy_modul=require("Module:Nazwy");
p.Main=nazwy_modul.Np{nazwa=kanoniczna.Main,};
p.MainDisplayName=nazwy_modul.Np{nazwa=kanoniczna.Main,["wyświetlana"]="tak",};
...
return p;
</syntaxhighlight>
== Nazwy kanoniczne ==
Dostępne nazwy kanoniczne przestrzeni nazw, mają ogólny adres:
<syntaxhighlight lang="lua">
local kanoniczna=nazwy_np_modul.kanoniczna;
local <nazwa przestrzeni nazw kanoniczna> = kanoniczna.<nazwa właściwości symbolizującą przestrzeń nazw>;
</syntaxhighlight>
=== Przykład uzyskiwania nazwy kanonicznej ===
<syntaxhighlight lang="lua">
local MainDisplayName = kanoniczna.MainDisplayName; -- Wartością tej zmiennej jest: "(main)".
</syntaxhighlight>
=== Właściwości i ich wartości, zmiennej „kanoniczna” modułu nazw szczególnych ===
Dostępne na polskim {{NS|w=tak|l=tak}} przestrzenie nazw kanoniczne podane w tabelce:
{{Tabela|klasa=wikitable tekst-centruj-td|liczba wierszy=16|liczba kolumn=4
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 2 | komórka 1_3 = Przestrzeń dyskusji | nagłówek 1_3 = tak | kolumny 1_3 = 2
| komórka 2_1 = Właściwość | nagłówek 2_1 = tak | komórka 2_2 = Wartość | nagłówek 2_2 = tak | komórka 2_3 = Właściwość | nagłówek 2_3 = tak | komórka 2_4 = Wartość | nagłówek 2_4 = tak
| komórka 3_1 = Main | komórka 3_2 = - | komórka 3_3 = Talk | wiersze 3_3 = 2 | komórka 3_4 = Talk | wiersze 3_4 = 2
| komórka 4_1 = MainDisplayName | komórka 4_2 = (main)
| komórka 5_1 = Wikijunior | komórka 5_2 = Wikijunior | komórka 5_3 = Wikijunior_talk | komórka 5_4 = Wikijunior talk
| komórka 6_1 = User | komórka 6_2 = User | komórka 6_3 = User_talk | komórka 6_4 = User talk
| komórka 7_1 = File | komórka 7_2 = File | komórka 7_3 = File_talk | komórka 7_4 = File talk
| komórka 8_1 = Media | komórka 8_2 = Media | komórka 8_3 = - | kolumny 8_3 = 2
| komórka 9_1 = Category | komórka 9_2 = Category | komórka 9_3 = Category_talk | komórka 9_4 = Category talk
| komórka 10_1 = Template | komórka 10_2 = Template | komórka 10_3 = Template_talk | komórka 10_4 = Template talk
| komórka 11_1 = Module | komórka 11_2 = Module | komórka 11_3 = Module_talk | komórka 11_4 = Module talk
| komórka 12_1 = Project | komórka 12_2 = Project | komórka 12_3 = Project_talk | komórka 12_4 = Project talk
| komórka 13_1 = Wikibooks | komórka 13_2 = Wikibooks | komórka 13_3 = Wikibooks_talk | komórka 13_4 = Wikibooks talk
| komórka 14_1 = Help | komórka 14_2 = Help | komórka 14_3 = Help_talk | komórka 14_4 = Help talk
| komórka 15_1 = MediaWiki | komórka 15_2 = MediaWiki | komórka 15_3 = MediaWiki_talk | komórka 15_4 = MediaWiki talk
| komórka 16_1 = Special | komórka 16_2 = Special | komórka 16_3 = - | kolumny 16_3 = 2
}}
Przede wszystkim właściwość i wartość właściwości zmiennej są takie same, uwzględniając, że w właściwości spacje są zastąpione dolnymi myślnikami, z wyjątkiem tym, że zmienna {{Code|MainDisplayName}} nie jest nazwą kanoniczną, a także jego wartość, prawdziwą wartością kanoniczną jest wartość pusta, co jest uwidocznione w następnym wyjątku w zmiennej {{Code|Main}}, którego wartością jest wartość pusta.
Zmienne: {{Code|Main}} i {{Code|MainDisplayName}}, wskazują na tą samą przestrzeń, którą jest wartość pusta, ona wskazuje na przestrzeń główną, którą możemy oznaczyć, jako po angielsku: {{Code|(main)}}, lub po polsku: {{Code|(główna)}}.
Zmienne: {{Code|Media}} i {{Code|Special}}, nie mają swojego odpowiednika dla przestrzeni dyskusji.
== Nazwy niekanoniczne przestrzeni nazw ==
Dostępne nazwy niekanoniczne przestrzeni nazw, mają ogólny adres:
<syntaxhighlight lang="lua">
local <nazwa przestrzeni nazw kanoniczna> = nazwy_np_modul.<nazwa właściwości symbolizującą przestrzeń nazw>;
</syntaxhighlight>
=== Przykład uzyskiwania nazwy niekanonicznej ===
<syntaxhighlight lang="lua">
local MainDisplayName = nazwy_np_modul.MainDisplayName; -- Wartością tej zmiennej jest: "(główna)".
</syntaxhighlight>
=== Właściwości i ich wartości, zmiennych głównych tego modułu nazw szczególnych ===
Dostępne na polskim {{NS|w=tak|l=tak}} przestrzenie nazw niekanoniczne podane w tabelce:
{{Tabela|klasa=wikitable tekst-centruj-td|liczba wierszy=15|liczba kolumn=6
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 3 | komórka 1_4 = Przestrzeń dyskusji | nagłówek 1_4 = tak | kolumny 1_4 = 3
| komórka 2_1 = Właściwość | nagłówek 2_1 = tak | komórka 2_2 = Nazwa kanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Wartość | nagłówek 2_3 = tak | komórka 2_4 = Właściwość | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Wartość | nagłówek 2_6 = tak
| komórka 3_1 = Main | komórka 3_2 = - | komórka 3_3 = -| komórka 3_4 = Talk | wiersze 3_4 = 2 | komórka 3_5 = Talk | wiersze 3_5 = 2 | komórka 3_6 = Dyskusja | wiersze 3_6 = 2
| komórka 4_1 = MainDisplayName | komórka 4_2 = (main) | komórka 4_3 = (główna)
| komórka 5_1 = Wikijunior | komórka 5_2 = Wikijunior | komórka 5_3 = Wikijunior | komórka 5_4 = Wikijunior_talk | komórka 5_5 = Wikijunior talk | komórka 5_6 = Dyskusja Wikijuniora
| komórka 6_1 = User | komórka 6_2 = User | komórka 6_3 = Wikipedysta | komórka 6_4 = User_talk | komórka 6_5 = User talk | komórka 6_6 = Dyskusja wikipedysty
| komórka 7_1 = File | komórka 7_2 = File | komórka 7_3 = Plik | komórka 7_4 = File_talk | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku
| komórka 8_1 = Media | komórka 8_2 = Media | komórka 8_3 = Media | komórka 8_4 = - | kolumny 8_4 = 3
| komórka 9_1 = Category | komórka 9_2 = Category | komórka 9_3 = Kategoria | komórka 9_4 = Category_talk | komórka 9_5 = Category talk | komórka 9_6 = Dyskusja kategorii
| komórka 10_1 = Template | komórka 10_2 = Template | komórka 10_3 = Szablon | komórka 10_4 = Template_talk | komórka 10_5 = Template talk | komórka 10_6 = Dyskusja szablonu
| komórka 11_1 = Module | komórka 11_2 = Module | komórka 11_3 = Moduł | komórka 11_4 = Module_talk | komórka 11_5 = Module talk | komórka 11_6 = Dyskusja modułu
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = Wikibooks | komórka 12_4 = Wikibooks_talk | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja Wikibooks
| komórka 13_1 = Help | komórka 13_2 = Help | komórka 13_3 = Pomoc | komórka 13_4 = Help_talk | komórka 13_5 = Help talk | komórka 13_6 = Dyskusja pomocy
| komórka 14_1 = MediaWiki | komórka 14_2 = MediaWiki | komórka 14_3 = MediaWiki | komórka 14_4 = MediaWiki_talk | komórka 14_5 = MediaWiki talk | komórka 14_6 = Dyskusja MediaWiki
| komórka 15_1 = Special | komórka 15_2 = Special | komórka 15_3 = Specjalna | komórka 15_4 = - | kolumny 15_4 = 3
}}
Właściwości: {{Code|Main}} i {{Code|MainDisplayName}}, wskazują na tą samą przestrzeń o wartości pustej, której jest przestrzenią główną, o angielskiej nazwie kanonicznej: {{Code|(main)}}, a polskiej {{Code|(główna)}}.
Nazwy zmiennych przedmiotowych są przede wszystkim takie same jak kanoniczne z dwoma wyjątkami, a dla przestrzeni dyskusji nazwa właściwości jest z dolnym myślnikiem, a kanoniczna bez niego, z tylko ze spacją, z wyjątkiem dla zmiennej przestrzeni dyskusji {{Code|Talk}}, która jest bez dolnego myślnika. Wartość tych parametrów równa się o właściwościach o nazwie kanonicznej, ewentualnie z dolny myślnikiem, o wartości nazwie niekanonicznej, które są nazwami przestrzeni po polsku.
Zmienne: {{Code|Media}} i {{Code|Special}}, nie mają swojego odpowiednika dla przestrzeni dyskusji.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8bo7mh2xdzgitla6c907w8v7n78j7d0
Wikibooks:Moduły/Nazwy/Tom I
4
62922
553150
552186
2026-08-24T19:55:12Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej */
553150
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty,a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|(main)}}, a w wersaji polskiej {{Code|(główna)}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kaniniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy doczynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy, tzw. przejście tożsamościowe, uzyskać poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na Wikipedii o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
denx201l06e8t9z2ltyw991whmp30kv
553151
553150
2026-08-24T19:59:26Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna */
553151
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kaniniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy doczynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy, tzw. przejście tożsamościowe, uzyskać poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na Wikipedii o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c1fio2emvh8nb76h4avxqoceoroe0eo
553152
553151
2026-08-24T20:01:01Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553152
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy, tzw. przejście tożsamościowe, uzyskać poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na Wikipedii o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kbrak24y1tadex4klu0c92qn6ib9xju
553153
553152
2026-08-24T20:03:59Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553153
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na Wikipedii o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rywif752gcaapuyh4khxsoyb4rfrabc
553154
553153
2026-08-24T20:06:15Z
Persino
2851
/* Nazwy przestrzeni z myślnikami dolnymi */
553154
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na Wikipedii o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gpdhkx6yh1bimn5p9puivmlq1qqei0m
553155
553154
2026-08-24T20:08:42Z
Persino
2851
/* Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} */
553155
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej wikipedii, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na polskiej Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie na podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej wikipedii, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o Wikibooksie do podanej obcojęzycznej Wikipedii podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w Wikipedii iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej Wikipedii. Do jakiej Wikipedii ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej Wikipedii (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na Wikipedii. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do Wikipedii.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
g9nx9rwd040fu4gz8qqxwggats5vlkg
553156
553155
2026-08-24T20:12:02Z
Persino
2851
/* Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a */
553156
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego Wikibooksa do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu Wikibooks dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego Wikibooksa lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego Wikibooksa (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż Wikibooks. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ccl3mapfwwbde8bcrmvdeerdoc72hu7
553157
553156
2026-08-24T20:14:48Z
Persino
2851
/* Funkcje nazw serwisowych projektów siostrzanych polskiego Wikibooks'a */
553157
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{lhg|Wikipedia|Wikipedii}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{lhg|Wikibooks|po=a}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3z8n197qlcxkezyrr30h8ul91g4czx9
553158
553157
2026-08-24T20:19:40Z
Persino
2851
/* Opis parametrów użytych razem z parametrem {{Code|link}} */
553158
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qkhe9chotremnocdleney1wzzltmi40
553159
553158
2026-08-24T20:32:34Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553159
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2duiueqsfbb4ycuxqdvo8szckhvfw6y
553160
553159
2026-08-24T20:35:55Z
Persino
2851
/* Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie */
553160
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci nie identyfikatorów:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kf67njx0o9rs449hemddckf76gwrnug
553161
553160
2026-08-24T20:37:13Z
Persino
2851
/* Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie */
553161
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Lub przypadek odwrotny dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Lub identyfikator przestrzeni nazw na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- : "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9xsyq3f0epwftpgpy6e4ut9qv0i5q38
553162
553161
2026-08-24T20:40:44Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553162
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rx74xy8ic0tonkc2607f18l9i5ibgf2
553163
553162
2026-08-24T20:41:51Z
Persino
2851
/* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */
553163
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw niegłównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bdflz3uykn2j6ogldzboohknn18wh5n
553164
553163
2026-08-24T20:46:19Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna */
553164
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kq5dx7hxcn891zcxl197j6bpd0kl489
553165
553164
2026-08-24T20:47:06Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna */
553165
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jeimj94uflbg2h0481bdu0nor3bafk4
553166
553165
2026-08-24T20:47:45Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej */
553166
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Lub przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest innaczej oznaczana przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
25mbfetly4jdctbp6ajckr9ndhq86dd
553167
553166
2026-08-24T20:48:59Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej */
553167
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw.
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s4jrreuw704prlhkgbfllfn1iao67uj
553168
553167
2026-08-24T20:50:07Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej */
553168
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na Wikibooskie lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do Polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sxktfq2jwisi8k779y9n9ne1q0szwrw
553169
553168
2026-08-24T20:54:48Z
Persino
2851
/* Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} */
553169
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}},wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jc9szteetwsatjvh591lbwg7ybkh20f
553170
553169
2026-08-24T20:56:17Z
Persino
2851
/* Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} */
553170
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie MediaWiki, tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1oiyk8nhu7fuu4x7ilp539jg34liqnc
553171
553170
2026-08-24T21:10:10Z
Persino
2851
/* Odpowiednik szablonowy */
553171
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k22rudbvgcuam6eoyozvmyfat81e1cp
553172
553171
2026-08-24T21:11:10Z
Persino
2851
/* Odpowiednik szablonowy */
553172
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona jest zamieniana na sformatowaną nazwę niekanoniczną (ale nie kanoniczną, tylko niekanoniczną), jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jpy8bq4zgv0vsikf3855eab8vu6dq42
553173
553172
2026-08-24T21:16:11Z
Persino
2851
/* Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą */
553173
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczną), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, jest kanoniczna, czyli po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
48bk6syxweag9okd55osdclpvn6ggld
553174
553173
2026-08-24T21:25:34Z
Persino
2851
/* Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi */
553174
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kxz023zj89iudjboj3gtfe47mkh120s
553175
553174
2026-08-24T21:34:25Z
Persino
2851
/* Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{Code|mw.site.namespaces}} */
553175
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czy też numeru {{Code|id}} (identyfikatora przestrzeni nazw), piszemy:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną można zamienić na niekanoniczną, niezależnie jaką przestrzeń nazw mamy na myśli, według:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
myb2wd2u45mnql169lmuhvbgssur27p
553176
553175
2026-08-24T21:41:43Z
Persino
2851
/* Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą */
553176
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8ql4g6qnfqp1t4rm60o32cdcs20gif1
553177
553176
2026-08-24T21:48:25Z
Persino
2851
/* Użycie różnych kodów i ich równoważność */
553177
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Code|(main)}}, a dla polskigo projektu {{Code|(główna)}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1m49j3rnfp20rp4hwbnskxupgad1oir
553178
553177
2026-08-24T21:54:11Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej */
553178
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|wyświetlana}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, jedynie z tą różnicą niż poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, ale otrzymujemy to samo jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m90qujikxwh8ts0saeooo4vx7fosav7
553179
553178
2026-08-24T21:59:44Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej */
553179
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie na numer {{Code|id}} identyfikatora przestrzeni nazw, innej niż główna, z jej wersji nazwowej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora innej niż dla przestrzeni głównej, tutaj jest też podobnie, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s8eq25g3shl3nueczlcn4d33m3kgzdb
553180
553179
2026-08-24T22:07:03Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna */
553180
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|wyświetlana}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw):
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przy użyciu tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie tego parametru jest opcjonalne.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
tqj0wl52dg9vq4bxq3kfvqxu7c046bs
553181
553180
2026-08-24T22:15:00Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna */
553181
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 14, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską, ponieważ tutaj mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9gb3bi3v1l7vnj32vll4a8aram88mtq
553182
553181
2026-08-24T22:21:27Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553182
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1x58aaruilysxg43njdipfjgipoqbgd
553183
553182
2026-08-24T22:25:45Z
Persino
2851
/* Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie */
553183
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
81jc6rdsst76ne1cjuk5a10fujkfosz
553184
553183
2026-08-24T22:30:55Z
Persino
2851
/* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */
553184
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłądy, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w ty przypadku otrzymujemy nazwę po polsku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy nazwę angielską (kanoniczną) przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli baza przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy}} te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
db8120m7avckrnvnj3uuoeg0bjger5i
553185
553184
2026-08-24T22:38:01Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553185
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłądy, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3zpdjywrw0558hl4tsri9v4gllv1fst
553186
553185
2026-08-24T22:41:01Z
Persino
2851
/* Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje */
553186
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłądy, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jxyaamtellua4jwxiikpcuix6vof3li
553187
553186
2026-08-24T22:41:56Z
Persino
2851
/* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */
553187
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8w67jr1mbx5g2o6q3bwf9yrbuhnkelw
553188
553187
2026-08-24T22:45:06Z
Persino
2851
/* Łatwe sprawdzanie istnienia danej przestrzeni nazw */
553188
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|["kanoniczna"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", ["kanoniczna"] = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", ["kanoniczna"] = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
97954i10sv2zg96sodf4e0tql3sr7hz
553189
553188
2026-08-24T22:46:35Z
Persino
2851
553189
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo {{Code|kod języka}} wskazuje na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3rmjqeewb2nt6mpi8iph4q2nca97l6k
553190
553189
2026-08-24T22:49:00Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553190
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale prezestrzeni nazw są te same, co powyżej, tylko przestrzeń "Szablon", to jego idenntyfiator jest {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzeni nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, turaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9sg54ha3r9osgo9bhdlncko40aak91z
553191
553190
2026-08-24T22:51:03Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553191
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutajmamy dlajęzyka polskiego:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli bmamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rhbvik6t9yy2jj52az5ndn2tykox25i
553192
553191
2026-08-24T22:57:06Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553192
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
98ywuxs7h5hnvecr4xi5iwgim5htes4
553193
553192
2026-08-24T23:03:12Z
Persino
2851
/* Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi */
553193
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest kanoniczna, to uzyskamy jej nazwę, ale po angielsku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eb4ud1z876nnum0ck9p3maosq5ntwhp
553194
553193
2026-08-24T23:05:02Z
Persino
2851
/* Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi */
553194
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą,z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hmz4qpnjl748ee2bzk2e1h1rr7j4c1g
553195
553194
2026-08-24T23:06:38Z
Persino
2851
/* Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna */
553195
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Lub dla projektu niemającej wersji polskiej:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
22jlmdmlurjr8rhtbeyze6xgujvrzeu
553196
553195
2026-08-24T23:12:32Z
Persino
2851
/* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */
553196
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język polski:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qcbd282j5yhbw52waqepj3whm5ahw1q
553197
553196
2026-08-24T23:17:02Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553197
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
7m32v3veuvwf9qpoe2zisgnb7ujd0b5
553198
553197
2026-08-24T23:17:51Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553198
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, sa te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nk3qcions7me4pu8x7u1bt7j0dpamrm
553199
553198
2026-08-24T23:21:02Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553199
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dlajęzyka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9txdmjyqmisplmmm8oqy0dctpke6vxu
553200
553199
2026-08-24T23:22:21Z
Persino
2851
/* Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame */
553200
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jego id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jego parametr, tylko przestrzeny w nim występuje, jego element jest podobny do jego wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jego {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jego dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jego wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jego nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jego wersja wyświetlana posiada za to ciąg niepusty, o jego wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jego idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jego numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jego numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jego nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jego wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jego originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jego strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jego strony głównej w jakieś jego wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku w postaci nazwy linku, przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w jego języku, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pbjnntal9aancteyavpfnw87ttpgax5
553201
553200
2026-08-24T23:37:06Z
Persino
2851
553201
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowinie sformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jej numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jej strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j6s5qr73zko9o3uv8wqsirydcfn062b
553202
553201
2026-08-24T23:38:57Z
Persino
2851
/* Podstawowe wywołanie */
553202
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jej nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jej numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jej strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
e9utxh3rzd701lhhvg6vawgdtbp1oxd
553203
553202
2026-08-24T23:41:15Z
Persino
2851
/* Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną */
553203
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetrtlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jej numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jej strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
71r6pl57vxq4yruohvxi4lp6oap6shw
553204
553203
2026-08-24T23:41:46Z
Persino
2851
/* Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku */
553204
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Nazwy}}|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 nazw nazwy przestrzeni nazw ==
Należy przeczytać wiadomości ze strony {{lru|Moduły/Nazwy}}, które są informacjami wstępnymi, by używać funkcji bibliotecznych: {{m|Nazwy|Np}} i {{m|Nazwy|NpDane}}, i z nimi skojarzonych szablonów, tzn.: {{s|Np}} i {{s|NpDane}}. Wiadomosci też stąd są bardzo potrzebne do dalszych modułów tomów tej publikacji, to znaczy do funkcji, czy szablonów, nazw.
=== {{Code|m.Np}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|Np}}, odpowiednik funkcji, w mechanizmie '''MediaWiki''', tzn.: {{Span|styl=color:blue;|<nowiki>{{ns:<nazwa przestrzeni kanoniczna lub nie, albo jej id>}}</nowiki>}}, format tego, bo to nie jest szablon, czy funkcja, tylko wywołanie parserowe, tego, w którym jej parametr, tylko przestrzeny w nim występuje, jej element jest podobny do jej wersji bibliotecznej, opisywanej funkcji.
Format wersji bibliotecznej tej funkcji jest bardzo bodobny do jej wersji szablonowej, tylko jest inne uruchomienie, tam jest ramka, a tutaj wywołanie szablonowe.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|Np}} korzysta z funkcji bibliotecznej {{m|Nazwy|Np}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|Np}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Zestaw parametrów tej funkcji są to parametry nazwane podawane, w wersji tabelkowej,, w nawiasach klamerkowej, jak się to podaje w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
; Paramery funkcji {{m|Nazwy|Np|...|wyspecjalizowana{{=}}tak}} lub funkcji bibliotecznej wykorzystującej opisywaną funkcję{{Dk}}
* Parametry podstawowe
** {{Code|nazwa}} lub {{Code|1}} - nazwa przestrzeni nazw, kanoniczna lub nie, lub {{Code|id}} danej przestrzeni,
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Zmienne puste lub nie, np. o wartości {{Code|tak}}, lub nie, podawane do tej funkcji są:
** {{Code|przedmiotowa}} - zamienia daną przestrzeń na jej nazwę przedmiotową, tzn. na przestrzenie o numerach {{Code|id}} parzyste,
** {{Code|dyskusja}} - zamienia daną przestrzeń na jej wersję dyskusji, tzn. na przestrzenie o numerach {{Code|id}} nieparzyste,
** {{Code|kanoniczna}} - zamienia nazwę przestrzeni lub {{Code|id}} danej przestrzeni na jej nazwę kanoniczną, tzn. na jej wersję angielską,
** {{Code|z myślnikami dolnymi}} - zamienia spację w nazwach przestrzenie nazw na dolne myślniki,
** {{Code|wyświetlana}} - ten parametr nie wpływa na sposób wyświetlania nazw przestrzeni, oprócz jednej przestrzeni nazw, której jest przestrzeń główna o nazwie kanonicznej {{Code|(main)}} lub niekanonicznej {{Code|(główna)}}, wtedy są wyświetlane zamiast ciągu pustego te nazwy w zależności od podanego parametru {{Code|kanoniczna}}, tj. czy ona jest pusta lub nie, lub niepodana,
** {{Code|link}} - drukuje link o nazwie referencji, którą jest nazwa wyświetlana danej przestrzeni nazw, lub jej {{Code|id}}, o adresie strony przekierowującej, której jest adres odniesienia podanej w tabeli powyżej dla tej funkcji lub szablonu {{s|Np}},
** {{Code|id}} - wyświetla id danej przestrzeni nazw,
** {{Code|nazwij projektem}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Projekt}},
** {{Code|nazwij dyskusją projektu}} - powoduje, że wyświetlana jest nazwa projektu {{Code|Dyskusja wikibooks}} w postaci rzeczywistej nazwy kanonicznej (używany wraz z parametrem {{Code|kanoniczna}}), tzn. w postaci nazwy {{Code|Project talk}}, lub bez tego parametru, w postaci nazwy nierzeczywistej niekanonicznej {{Code|Dyskusja projektu}},
* inne zmienne niepuste:
** {{Code|istnieje}} - zwraca wartość tekstową {{Code|(bląd)}}, gdy przestrzeń jest nieprawidłowa lub nie istnieje, w innym przypadku zwraca normalną wartość,
** {{Code|wynik błędu nietekstowy}} - używany z {{Code|istnieje}}, zwraca wartość w języku {{lpg|Lua}} wartość {{Code|nil}}, gdy wartość nazwy przestrzeni nazw lub {{Code|id}} jest nieprawidłowa lub nieznana,
* zwracana zmienna w postaci tabeli ze składowymi z pewnymi podzmiennymi:
** {{Code|uchwyt}} - zwraca uchwyt przestrzeni nazw do danej przestrzeni nazw.
===== Przykłady używania =====
====== Podstawowe wywołanie ======
Podstawowe przykłady podstawowego wywołania funkcji, czyli uzyskiwania nazwy niekanonicznej z dowolnej nazwy przestrzeni kanonicznej, czy jej numeru {{Code|id}} (kodu danej przestrzeni nazw, który reprezentuje daną przestrzeń nazw przedmiotową, czy dyskusji), a więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ [1] = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ [1] = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ [1] = 10, };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Szablon", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "Template", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_6 = nazwy_modul.Np{ nazwa = 10, };
</syntaxhighlight>
Te trzy pary wywołania wyświetlają ten sam wynik tzn. o takiej samej wartości, bo parametr {{Code|nazwa}} wskazuje na tą samą przestrzeń nazw, tylko one są rożnie wskazane. Został ta użyty parametr: {{Code|1}} lub {{Code|nazwa}}, które oznaczają to samo, czyli przestrzeń nazw w postaci kanonicznej, niekanonicznej, czy numeru {{Code|id}}, czyli identyfikatora przestrzeni nazw. Jako wartość uzyskujemy tam nazwę kanoniczną przestrzenina polskiem {{NS|l=tak|p=ie}}.
Przestrzeń nazw może zawierać dowolnej wielkości litery, z dowolną liczbą odstępów z dolnymi spacjami lub normalnymi, jeżeli w nim one występują,wtedy zawsze oznaczają one tą samą przestrzeń, niezależnie jak ją zapiszemy, przykłady poniżej.
Równie dobrze dowolną nazwę niekanoniczną możemy napisać, co jest uwidocznione w parametrze {{Code|nazwa}}, na wyjściu otrzymujemy w pełni sformatowaną nazwę niekanoniczną, która odpowiada jej odpowiednikowi niesformatowanemu:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "SZABLON", };
-- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "TEMPLATE", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "DYSKUSJA ___ ___ _ SZABLONU", };
-- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "TEMPLATE_________TALK", };
</syntaxhighlight>
====== Nazwy kanoniczne i niekanoniczna oraz zamiana z jednej na drugą ======
Aby uzyskać nazwę z dowolnej nazwy, nawet też kanonicznej, czynie, czy też z numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy należy podać parametr przestrzeni nazw, z dodatkowym parametrem {{Code|kanoniczna}}, w takim razie:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_1 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_2 = nazwy_modul.Np{ nazwa = "Template", kanoniczna = "tak", };
-- Uzyskujemy wartość: "Template":
local nazwa_kanoniczna_3 = nazwy_modul.Np{ nazwa = 10, kanoniczna = "tak", };
</syntaxhighlight>
* Według powyższego przykładu, ona, czyli przestrzeń nazw, jest zamieniana na sformatowaną nazwę kanoniczną, jako parametr może być nazwa niekanoniczna, kanoniczna, czy identyfikator przestrzeni nazw.
Dowolną nazwę kanoniczną, czy nie, można zamienić na niekanoniczną, niezależnie w jakiej formie podamy przestrzeń nazw, może być to przekształcenie tożsamościowe, może być to w postaci identyfikatora tej przestrzeni, niezależnie jaką ją mamy na myśli, więc:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Uzyskujemy wartość: "Szablon":
local nazwa_niekanoniczna = nazwy_modul.Np{ nazwa = "Template", };
</syntaxhighlight>
* Wystarczy wtedy użyć tylko jednego parametru, nie trzeba używać większej liczby innych parametrów.
====== Nazwy przedmiotowe i dyskusji oraz przejścia pomiędzy nimi ======
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzoną, tzn. z przedmiotowej do dyskusji lub odwrotnie, przykłady poniżej. Do tego celu używamy parametru {{Code|przedmiotowa}}, czyli do tłumaczenia nazwy przestrzeni nazw na jej wersję przedmiotową, tzn. na przestrzeń nazw o identyfikatorze parzystym. Można też użyć parametru {{Code|dyskusja}}, robiąca tłumaczenia na wersje dyskusji, o identyfikatorze nazwy przestrzeni nazw nieparzystym.
Nie wolno używać tych parametrów, tych dwóch w jednym wywołaniu, bo może dojść do błędu funkcji w postaci komunikatu {{Code|(błąd)}}.
Tłumaczona nazwa może być zarówno niekanoniczna, jak i kanoniczna, lub być zawarta w postaci identyfikatora przestrzeni nazw.
Tutaj bez użycia żadnego parametru dodatkowego, wtedy otrzymujemy na wyjściu nazwę niekanoniczną.
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", };
-- Gdy prrzestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", };
---- Zwraca wartość: szablon "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, zamieniający dowolne przestrzenie nazw, niezależnie, czy jest zapisana w postaci identyfikatora, czy nie, gdy nazwą przestrzeni jest nazwa niekanoniczna (lub kanoniczna), to uzyskana nazwa przedmiotowa, czy dyskusji, jest nazwą kanoniczną, jako w wyniku:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać, gdy nazwę przedmiotową tłumaczymy na przedmiotową, dyskusji na dyskusji, wtedy tłumaczenie z przestrzeni do przestrzeni jest tożsamościowe, niezależnie w jakiej formie podamy nazwę przestrzeni nazw jako parametr, tłumaczymy nazwę polską na tą samą nazwę też polską, o tej samej wartości lub jej odpowiednik angielski w wersji kanonicznej na jej wersję niekanoniczną, czy z numeru identyfikatorana jej odpowiednik nazwowy, ale nadal takie przejście jest tożsamosciowe, bo chodzi o tą samą przestrzeń nazw, mimo że użyliśmy tych parametrów:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak",};
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak",};
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak",};
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, to uzyskana nazwa przedmiotowa, czy dyskusji, wtedy mamy tłumaczenie tozsamościowe, jeśli chodzi o przestrzeń nazw, co one oznaczają, jeśli ona jest niekanoniczna, to uzyskamy jej nazwę, ale po angielsku, a jeśli jednak jest kanoniczna, to otrzymamy ten sam wynik:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.Np{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.Np{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.Np{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", };
-- Gdy przestrzeń nazw jest w postaci numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.Np{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.Np{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Nazwy przestrzeni z myślnikami dolnymi ======
Gdy używamy przestrzeni nazw, czy to w postaci kanonicznej, czy niekanonicznej, ze spacjami, to spacje są w nim zamieniane na dolne myślniki. Jeżeli parametr zawiera spacje lub dolne myślniki na końcach nazwy, to ona jest trimowana, wewnątrz, wtedy powtórzone spacje, lub myślniki dolne, są zamieniane na jeden dolny myślnik, jeżeli zamieniamy nazwę niekanoniczną na niekanoniczną, kanoniczną na kanoniczną. Gdy tak nie jest, tzn. gdy zamieniamy kanoniczną na niekanoniczną, niekanoniczną na kanoniczną, to wtedy jest podobnie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przestrzeni nazw ======
Gdy nazwą przestrzeni nazw jest nazwa o charakterze niepustym, to przy parametrze {{Code|wyświetlana {{=}} "tak"}}, jest zamieniana ona na tą samą nazwę, gdy ona jest pusta, to jest zamieniana na szereg: {{Code|(główna)}} bez parametru {{Code|kanoniczna}}, a z tym parametrem na {{Code|(main)}}.
Przykłady jak jest, jest powiedziane:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_1 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_2 = nazwy_modul.Np{ nazwa = "Szablon", wyświetlana = "tak", };
---- Zwraca wartość: "":
local nazwa_przestrzeni_3 = nazwy_modul.Np{ nazwa = "", wyświetlana = "", };
---- Zwraca wartość: "(główna)":
local nazwa_przestrzeni_4 = nazwy_modul.Np{ nazwa = "", wyświetlana = "tak", };
---- Zwraca wartość: "(main)":
local nazwa_przestrzeni_5 = nazwy_modul.Np{ nazwa = "", kanoniczna = "tak", wyświetlana = " tak", };
</syntaxhighlight>
Na podstawie ramki powyżej w przestrzeniach nazw wyświetlanych dowiadujemy się, że jedyna różnica, w nazwach wyświetlanych lub nie, jest dla przestrzeni głównej, czyli dla przestrzeni nazw, której nazwa przestrzeni jest ciągiem pustym.
====== Wersja funkcji z wyświetlaną nazwą przestrzeni nazw z linkiem opisującej tą przestrzeń ======
Nazwę przestrzeni nazw zamieniamy na link z opisem, co robi dana przestrzeń nazw, z nazwą wyświetlaną niekanoniczną, bez parametru {{Code|kanoniczna}}, lub z tym,wtedy nazwę wyświetlaną jest kanoniczna. Gdy przestrzeń nazw jest główna, to wtedy nazwą linku jest {{Code|(główna)}} ({{Code|(main)}} z parametrem {{Code|kanoniczna}}).
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "", link = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "", link = "tak", kanoniczna = "tak", };
</syntaxhighlight>
Przykłady funkcji w wyniku są w przykładach szablonowych:
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}Szablon|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=Szablon|link=tak|kanoniczna=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak}}}}
# {{Code|{{s|Np|nazwa{{=}}|link{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{Np|nazwa=|link=tak|kanoniczna=tak}}}}
====== Uzyskiwanie numeru {{Code|id}} danej przestrzeni nazw ======
Gdy chcemy uzyskać numer identyfikatora przestrzeni nazw, czy to z użyciem parametru {{Code|kanoniczna}}, czy nie, wtedy ten parametr jest w tym przypadku ignorowany, przy parametrze {{Code|id {{=}} "tak"}} na jej odpowiednik w postaci numeru, który charakteryzuje przestrzenie przedmiotowe i dyskusji, inna jest dla tych dwóch typów przestrzeni. Dla przestrzeni przedmiotowej {{Code|id}} jest parzyste, a dla dyskusji nieparzyste.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_1 = nazwy_modul.Np{ nazwa = "Szablon", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 10:
local id_2 = nazwy_modul.Np{ nazwa = "Szablon", kanoniczna = "tak", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_3 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", id = "tak", };
---- Uzyskany numer id nazwy przestrzeni nazw jest 11:
local id_4 = nazwy_modul.Np{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", id = "tak", };
</syntaxhighlight>
====== Uzyskiwanie nazwy projektu nazwy przedmiotowej i jej dyskusji, z kanonicznej lub nie, przestrzeni nazw ======
Gdy używamy przestrzeni nazw {{Np|Wikibooks|link=tak}} lub {{Np|Wikibooks|link=tak|dyskusja=tak}}, to je można tłumaczyć na je wersje czysto kanoniczne, tzn.: {{Np|Wikibooks|link=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak}}, gdy translacja jest na nazwę polską niekanoniczną, a gdy użyjemy parametru {{Code|kanoniczna}}, wtedy sytuacja jest inna: {{Np|Wikibooks|link=tak|kanoniczna=tak}} tłumaczymy na {{Np|Wikibooks|link=tak|nazwij projektem=tak|kanoniczna=tak}}, a {{Np|Wikibooks|link=tak|dyskusja=tak|kanoniczna=tak}} na {{Np|Wikibooks|link=tak|dyskusja=tak|nazwij dyskusją projektu=tak|kanoniczna=tak}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Projekt":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij projektem"] = "tak", kanoniczna = "tak", };
---- Zwraca wartość: "Dyskusja projektu":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.Np{ nazwa = "Wikibooks", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", };
</syntaxhighlight>
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Gdy używamy przestrzeni nieistniejącej bez parametru {{Code|istnieje {{=}} "tak" }}, wtedy na wyjściu otrzymamy to samo, tylko w wersji sformatowanej, a gdy użyjemy, wtedy pojawia tam się napis {{Code|(błąd)}}. Gdy parametrem jest znana funkcji przestrzeń nazw, to nie uzyskujemy błędu, tylko przepisaną sformatowaną nazwę.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", };
</syntaxhighlight>
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Gdy oprócz parametru {{Code|istnieje {{=}} "tak"}}, użyjemy {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, wtedy dla nieznanej przestrzeni uzyskujemy wartość w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, czyli: {{Code|nil}}, a w wikikodzie natomiast uzyskujemy wartość pustą, co pomaga w sprawdzeniu, czy dana przestrzeń istnieje, ale dodatkowo trzeba użyć parametru {{Code|["wyświetlana"] {{=}} "tak"}}, by nie pomylić parametru błędu z przestrzenią główną, wtedy ta przestrzeń ma nazwę niepustą przy tych parametrach, bo wtedy mamy nazwę niekanoniczną {{Code|(główna)}}, kanoniczną, przy specjalnym parametrze, czyli: {{Code|(main)}}, wtedy możemy użyć parsera {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.Np{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.Np{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", };
</syntaxhighlight>
====== Uzyskiwanie uchwytu danej przestrzeni nazw analogicznie do funkcji {{LzLua|mw.site.namespaces}} ======
Uchwyt niskopoziomowy do danej przestrzeni nazw można uzyskać przy pomocy kodu, uzyskujemy dla tej tablicy przestrzennej, która jest połączona z metatabelką, dzięki której możemy podawać przestrzenie nazw w wersji niezależnie jakimi literami, z dowolną kliczbą odstępów, nawet zapisana dolnymi myślnikami:
<syntaxhighlight lang="lua">
local uchwyt_1 = mw.site.namespaces["Szablon"];
local uchwyt_2 = mw.site.namespaces["Template"];
local uchwyt_3 = mw.site.namespaces[10];
</syntaxhighlight>
Funkcja powyżej ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To samo, ale wysokopoziomowe, można utworzyć przy pomocy parametru: {{Code|uchwyt}}, wtedy szablon z rzuci odwołanie do tej tabeli, ale nie zawsze tak jest, czasami, gdy jakieś przestrzenie nie istnieją na polskim {{NS|w=tak|l=tak|pk=mj}}, wtedy odwołujemy się do jej wersji pseudo tej tabeli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.Np{ nazwa = "Szablon", uchwyt = "tak", };
local uchwyt_2 = nazwy_modul.Np{ nazwa = "Template", uchwyt = "tak", };
local uchwyt_3 = nazwy_modul.Np{ nazwa = 10, uchwyt = "tak", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.Np}} jest bardziej ogólniejsza niż {{LzLua|mw.site.namespaces}}, ponieważ uwzględnia większą liczbę nazw przestrzeni nazw, bo ona uwzględnia nieznane przestrzenie i znane o nieznanych nazwach, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
=== {{Code|m.NpDane}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NpDane}}. Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
* Szablon {{s|NpDane}} korzysta z funkcji bibliotecznej {{m|Nazwy|NpDane}}, więc parametry obu są wręcz takie same, a nawet podobne. Chociaż ta sama nazwa funkcji w ramce i kodzie {{lpg|Lua}}, to używanie ich nie jest dokładnie takie samo, funkcja biblioteczna nie potrzebuje parametru {{Parametr|wyspecjalizowana|tak}}, a ramka już tak, a szablon {{s|NpDane}}, który korzysta z tej ramki, to nieobecność, lub obecność z wartością pustą, tego parametru powoduje, że przyjmowane są parametry rodzica, a nie dziecka, które wymagają jego niepustość.
==== Funkcja biblioteczna ====
Szablon służy przede wszystkim do tłumaczenia angielskich nazw przestrzeni nazw na ich wersję w jakimś języku i operacji odwrotnej, a także numer przestrzeni nazw na jej nazwę w nim angielską lub w jakimś języku, lub odwrotnie, umożliwia też na przetłumaczenie nazwy przestrzeni nazw lub identyfikatora przestrzeni na jej nazwę polską, jeżeli istnieje.
Funkcja {{m|Nazwy|NpDane}} przyjmuje te same parametry, co {{m|Nazwy|Np}}, oprócz wywołania ramkowego: {{Code|uchwyt}} (która w tej funkcji w sposób inny jest zdefiniowana, nie jak w funkcji: {{m|Nazwy|Np}}), jak oba, którego tutaj w nim nie ma, a jako zwykła funkcja biblioteczna może przyjmować ten parametr. Te zmienne działają podobnie w obu procedurach, z tą różnicą, że mamy inny zestaw nazw przestrzeni nazw (czasami bez numerów {{Code|id}} - identyfikatorów tych obsługiwanych przestrzeni nazw, a te podstawowe one je mają, jeżeli da się je powiązać z pierwszą funkcją w drugiej, jedynie w takim przypadku one występują) i można też użyć parametrów dodatkowych, które są niedostępne w pierwszej funkcji, a w drugiej już tak. Dodatkowo on przyjmuje argumenty:
* Adres kodowy projektu siostrzanego lub lokalnego polskiego {{Code|Wikibooks}}:
** {{Code|klucz projektu}} - kody języka i projektu podana w jednej zmiennej oddzielone od siebie dwukropkami, może być dowolna liczba tych kodów,
** {{Code|kod projektu}} - kod projektu danego wiki,
** {{Code|kod języka}} - kod języka danego wiki,
* {{Code|po polsku}} - tłumaczy nazwę kanoniczną danej przestrzeni nazw na jej wersję polską, tzn. na język polski, a jeżeli jej wersja polska nie istnieje, to pisze jej wersję w języku angielskim, czyli w postaci nazwy kanonicznej,
* {{Code|awaryjnie}} - za pomocą projektu {{NS|l=tak|k=d}} tłumaczy daną nazwę przestrzeni nazw w jednym języku (jej nazwę kanoniczną jakieś przestrzeni nazw) na drugi, gdy wartość jest pusta, to tłumaczy na jej nazwę kanoniczną, jeżeli, przy tym parametrze lub bez, jej wersja w innym danym języku nie istnieje zdefiniowana w module {{m|Nazwy/przestrzenie}}.
Parametry: {{Code|nazwij projektem}} i {{Code|nazwij dyskusją projektu}} używa się tak samo jak dla funkcji {{m|Nazwy|Np}}, tylko z różnicą, że w funkcji {{m|Nazwy|NpDane}} musimy skorzystać koniecznie z parametru {{Code|kanoniczna}} z wartością niepustą, a wtedy wydrukowane wartości są w postaci wersji kanonicznej w języku angielskim, tak jak z ostatnim szablonem.
===== Używanie kluczy projektu, kodów projektu i kodów języka =====
Kody nazw piszemy, jak zwykle, z małej litery, co jest zalecane, ale można je pisać z liter o dowolnej wielkości.
====== Użycie różnych kodów i ich równoważność ======
Kody projektu i języka możemy pisać ze względu na dwa sposoby, w zależności jakich zmiennych używamy, możemy pisać tzw. grupę tych kodów w jednej zmiennej, wtedy się liczy ostateczny adres do danego projektu w jakieś wersji językowej, tylko jeden, a nie n-wersji danego języka i m-wersji danego projektu, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "en:de:w:ru:en:q:pt", ... };
</syntaxhighlight>
* Najważniejsze są kody projektu końcowe, podobnie ma się sprawa z kodami języków, tutaj kodami projektów są: {{Code|w}} ({{NS|l=tak|k=w}}) i {{Code|q}} ({{NS|l=tak|k=q}}), a kodami języków są: {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}), {{Code|de}} ({{lpg|{{#invoke:lang|hasło|de}}}}), {{Code|ru}} ({{lpg|{{#invoke:lang|hasło|ru}}}}), {{Code|en}} ({{lpg|{{#invoke:lang|hasło|en}}}}) i {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}), czy końcowy kod projektu jest: {{Code|q}} ({{NS|l=tak|k=q}}) i kod języka {{Code|pt}} ({{lpg|{{#invoke:lang|hasło|pt}}}}).
W powyższym przykładzie napisaliśmy mnóstwo kodów w postaci jednej zmiennej, to jest równoważne zapisowi, czyli ostatecznej wersji wspomnianej powyższego zapisu, też zapisaną za pomocą tej samej zmiennej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik_1 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "pt:q", ... };
local wynik_2 = nazwy_modul.NpDane{ ..., ["klucz projektu"] = "q:pt", ... };
</syntaxhighlight>
Powyższy wynik rozpisujemy na dwie zmienne, w których podajemy tylko pojedyncze kody, a nie grupy, więc widziemy, ża zamiast podawania jednego parametru z interwiki, to możemy to rozbić na dwa parametry kodu projektu i języka, a nie używać to w jednej zmiennej, należy pamiętać, że w tych kodach, może być jedno interwiki, specjalnie dla projektu lub języka, do którego dana zmienna jest przystosowana:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local wynik = nazwy_modul.NpDane{ ..., ["kod projektu"] = "q", ["kod języka"] = "pt", ... };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni głównej ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''głównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, wtedy uzyskujemy niezależnie od projektu wartość pustą, bo takie jest przedstawienie wartości niewyświetlanej przestrzeni głównej na każdym projekcie obsługujący przestrzenie nazw, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, wtedy uzyskujemy na wyjściu to samo, co powyżej, czyli wartość pustą, bo wartość {{Code|0}} jest odpowiednikiem przestrzeni głównej, czyli poniższe przykłady są odpowiedniami tych powyższych, czyli te dwa przykład, tak można powiedzieć, że to samo robią:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi pustemu: "":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", };
</syntaxhighlight>
0
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, wtedy jeżeli nie ma wartości kanonicznej dla danego języka projektu, to wyswietlana jest wartość {{Np|(main)|link=tak|kanoniczna=tak}}, a dla polskigo projektu {{Np|(main)|link=tak}}, a dla innych języków jest nazwa charakterystyczna dla danego języka pod warunkiem, jeżeli doda się tego obsługę, więc tego przykłady przy użyciu zmiennej {{Code|["wyświetlana"] {{=}} "tak"}}, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw przestrzeni głównej, w takim przypadku uzyskujemy to samo co powyżej, tylko jest inaczej, oznaczana jest wtedy przestrzeń główna, dla tego samego projektu siostrzanego, w wersji charakterystycznej dla danego języka, tutaj dla angielskiego:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(main)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni głównej ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące się ciągiem niepustym mamy podobne wyniki, jak powyżej bez parametry {{Code|["wyświetlana"] {{=}} "tak"}}, tylko nazwa wyświetlana przestrzeni nazw jest po polsku (odpowiednia nazwa w języku polskim), a nie po angielsku (w języku danego projektu):
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej, nazw przestrzeni nazw mający nazwy puste, ale zamienione na nazwy wyświetlane, ale w postaci języka polskiego, używając parametru {{Code|["po polsku"] {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu identyfikatora przestrzeni nazw głównej, czyli dla tej samej przestrzeni nazw, co powyżej, tylko ona jest inaczej oznaczana, to możemy zrobić to samo, co powyżej, tylko nazwa główna przestrzeni nazw jest inaczej zapisana, w postaci numerycznej, wtedy otrzymamy wynik taki sam, jak w powyższym przykładzie, bo w obu używaliśmy takiej samej przestrzeni, tylko różnie przepisaną:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 0, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość nazwy przestrzeni głównej: "(główna)":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 0, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
====== Nazwy wyświetlane przy użyciu tych kodów dla przestrzeni innej niż główna ======
Nazwy bez użycia zmiennej powodujące wyświetlanie nazwy przestrzeni nazw '''niegłównej''' na różnych projektach w postaci nieprzetłumaczonej na język polski, tylko w wersji charakterystucznej dla języka danego projektu używaną w odwołaniu:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", };
</syntaxhighlight>
A przy zamianie tej przestrzeni nazw w powyższym przykładzie na numer - identyfikator nazw, czyli {{Code|id}}, to identyfikator przestrzeni nazw, innej niż główna, z jej wersji nazwowej, otrzymamy wynik w postaci nazwy niepustej, bo to nie jest przestrzeń główna, oznaczana zerowy tym identyfikatorem, czyli w postaci tej liczby:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", };
---- Zwraca wartość równą ciągowi niepustemu: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków, o charakterze niepustości, przy użyciu tego parametru, otrzymujemy wynik, jak powyżej, bo nazwa wyświetlana przestrzeni jest od razu niepusta, bo przestrzeni nazw mają wartość niepustą, więc nie trzeba ich uznawać, że są inne:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
A gdy parametr {{Code|nazwa}} przyjmuje wartość liczbową w postaci identyfikatora {{Code|id}}, innej niż dla przestrzeni głównej, ale zapisaną dla tych samych przestrzeni nazw, jak powyżej, co czyni, że tutaj jest też podobnie, otzrymamy te same wartości, tylko jest inna reprezentacja parametrów wchodzących do funkcji, jak powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla przestrzeni niepustej, że użycie tego parametru, według przykładów powyżej, jest opcjonalne, a nawet zbędne, bo ten parametr w tym przypadku nic nie zmienia, zmienia tylko dla przestrzeni głównej, którego ciąg charakteryzujący tą przestrzeń jest pusty, a jej wersja wyświetlana posiada za to ciąg niepusty, o jej wersji kanonicznej {{Code|{{Np|(main)|link=tak|kanoniczna=tak}}}}, a w wersji polskiej {{Code|{{Np|(main)|link=tak}}}}, te nazwy można pomiędzy sobą tłumaczyć za pomocą funkcji {{m|Nazwy|NpDane}} lub szablonu {{s|NpDane}}.
====== Nazwy wyświetlane przy użyciu tych kodów przetłumaczone je na język polski dla przestrzeni innej niż główna ======
Z wyświetlaniem na ekranie przestrzeni nazw charakteryzujące ciągiem niepustym mamy podobne wyniki jak powyżej bez parametru {{Code|["wyświetlana"] {{=}} "tak"}}:
Przy użyciu zmiennej generującej wyświetlanie w postaci znaków o charakterze niepustej przetłumaczonej na język polski, używając parametrów w postaci pewnych nazw niepusstych, dla projektów innych niż wq języku polskim, ale te przestrzenie nazw tłumaczymyna ich odpowiedniki polskie, jakie istnieją, na projektach właśnie, że polskich:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Albo przy użyciu numeru {{Code|id}} (identyfikatora przestrzeni nazw), wtedy właśnie robimy to samo, co powyżej, tylko jest inna reprezentacja parametrów, ale ta sama przestrzeń, więc uzyskujemy te same wyniki, czyli o tej samej wartości, mimo, że wizulanie,a by inne parametry:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["po polsku"] = "tak", };
</syntaxhighlight>
Przy użyciu zmiennej generującej wyświetlanie, użzywając parametru wspoianego powyżej, w postaci znaków o charakterze niepustej przy użyciu tego parametru, co sugeruje, że ten argiment nic nie zmienia, ale jedynie wyświetla się to samo, co bez tego parametru:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
A tutaj przy użyciu identyfikatora przestrzeni nazw przestrzeni nazw niegłównej, czyli przestrzeni nazw charakteryzującej się jej wersją niewyświetlaną niepustą, z tymi samymi parametrami, co powyżej, z tymi samymi wartościami, tylko jest inna reprezentacja przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
---- Zwraca wartość równą nazwie przestrzeni niegłównej: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "commons", ["wyświetlana"] = "tak", ["po polsku"] = "tak", };
</syntaxhighlight>
Widzimy, jedynie dla tej przestrzeni, że użycie wspomnianego tego parametru jest opcjonalne, bo nic w tym przypadki nie zmienia, bo przestrzeń nazw nie jest pusta, lub nie jest reprezentowana inaczej, niż przez liczbę {{Code|0}}.
===== Tłumaczenie nazw przestrzeni nazw z jednego języka na drugi =====
====== Tłumaczenie nazw obcojęzycznych nazw przestrzeni nazw na jej wersję polską, tzn. jej język polski, i na język angielski, tzn. jej wersje angielską w postaci nazwy kanonicznej, albo identyfikator przestrzeni nazw lub operację przeciwną ======
Tłumaczenie na nazwę kanoniczną w języku angielskim, z nazwy polskiej, czy nazwy w innym języku, tutaj w języku polskim, w jakim ona jest jedynie dostępna, przy użyciu parametru {{Code|kanoniczna {{=}} "tak"}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Tłumaczenie identyfikatora przestrzeni nazw na nazwę kanoniczną, ale przestrzeni nazw są te same, co powyżej, tylko zamiast przestrzeni nazw: "Szablon", mamy to jej idenntyfiator, którym jest liczba: {{Code|10}}, wtedy otrzymamy te same wyniki, co powyżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", kanoniczna = "tak", };
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", kanoniczna = "tak", };
</syntaxhighlight>
Przypadek odwrotny, do poprzednich, dla tego samego projektu, gdy nie używamy tego parametru, ale przestrzenie nazw są tym razem po angielsku, jako nazwy kanoniczne, które są zamieniane na jej wersją charakterystyczną dla danego projektu, tutaj polską:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Template", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Template", ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
Identyfikator przestrzeni nazw tłumaczymy na jego nazwę polską - ewentualnie, na wersję języka projektu, i dlatego tutaj używamy języka polskiego, ponieważ mamy do czynienia z projektem polskojęzycznym, bo kod języka projektu wskazuje tutaj na ten język:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, ["kod projektu"] = "w", ["kod języka"] = "pl", };
</syntaxhighlight>
====== Tłumaczenie nazw przestrzeni na jej wersję w innych języku w jakikolwiek projekcie ======
Do tłumaczenia używamy parametru {{Code|awaryjnie}}, której użycie w funkcji {{m|Nazwy|NpDane}}, powoduje skorzystanie z bazy danym projektów {{Code|MediaWiki}}, czyli {{Code|{{NS|l=tak|w=tak|k=en:d|jw=tak}}}} (po angielsku), a inaczej {{Code|{{NS|l=tak|w=tak|k=d}}}} (po polsku):
* Przy użyciu nazw przestrzeni nazw w postaci, nie identyfikatorów, nazwanej łańcuchem znaków,możemy daną przestrzeń przetłomaczyć na dany język, nie używając przy tym żadnych stron: {{Code|.json}}, w podstronach modułu {{Code|{{m|Nazwy/}}}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Kategorie", ["klucz projektu"] = "de:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Категория", ["klucz projektu"] = "ru:w", awaryjnie = "tak", kanoniczna = "tak", };
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Category", ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
* Jako z ich wersją numeryczną, czyli w postaci identyfikatorów, nazwanej w postaci pewnego numeru, ale przestrzenie nazw są te same, co powyżej, tylko inaczej zapisane, a inne parametry są takie same, czyli z czterech przykładów generują się jedynie dwa, ale wyniki są te same:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 14, ["klucz projektu"] = "de:w", awaryjnie = "tak", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa 14, ["klucz projektu"] = "ru:w", awaryjnie = "tak", };
</syntaxhighlight>
Przykłady tłumaczenia z jednej wersji językowej w danym języku na angielski (wersję kanoniczną) i odwrotnie
# {{Code|{{s|NpDane|Kategorie|klucz projektu{{=}}de:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Kategorie|klucz projektu=de:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|Категория|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|Категория|klucz projektu=ru:w|awaryjnie=tak|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|Category|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
Przykłady przy użyciu identyfikatorów:
# {{Code|{{s|NpDane|14|klucz projektu{{=}}de:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=de:w|awaryjnie=tak}}}}
# {{Code|{{s|NpDane|14|klucz projektu{{=}}ru:w|awaryjnie{{=}}tak}}}} → {{Tt|{{NpDane|Category|klucz projektu=ru:w|awaryjnie=tak}}}}
===== Użycie parametru {{Code|link}} oraz zależność od projektu i języka, wyświetlanie nazw przestrzeni nazw po polsku =====
Przykłady poniżej i niektóre wywołania funkcji {{m|Nazwy|NpDane}} piszemy przy pomocy parametru {{Code|link}}, który posiłkujemy z {{Code|klucz projektu}}, przykładowo z pomożeniem użycia zmiennej {{Code|po polsku}}, ewentualnie z użyciem argumentu {{Code|kanoniczna}}, co powoduje wyświetlanie się linku do pewnej strony naa tym samym projekcie lub innym,a jeślimamy nazwę kanoniczną, to otrzymamy w linku nazwę linku właśnie że wyświetlaną, np. w postaci: {{Np|(main)|link=tak}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Szablon", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Template", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = "", link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = "", link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
Teraz będziemy, to robili przy użyciu identyfikatorów przestrzeni nazw, który będziemy tłumaczyć na jego wersję charakterystyczną dla danego projektu, nazwę kanoniczną lub na jego odpowiednik polski, ale mamy te same przykłady, co powyżej, bo te same przestrzenie nazw, tylko z tą różnicą, że ona jest inaczej zapisana, więc otrzymamy te same wyniki, więc:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = 10, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", };
local nazwa_przestrzeni_nazw_7 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
---- Tutaj nazwa przestrzeni zostanie wyświetlona, jako nazwa linku, po angielsku, czyli w wersji kanonicznej
local nazwa_przestrzeni_nazw_8 = nazwy_modul.NpDane{ nazwa = 0, link = "tak", kanoniczna = "tak", ["klucz projektu"] = "en:w", ["po polsku"] = "tak", };
</syntaxhighlight>
----
Przykłady funkcji w wyniku są:
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Szablon|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Szablon|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki tych samych przykładów, co powyżej, tylko przestrzeń nazw jest w postaci numerycznej:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}pl:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
Inne przykłady, projektu niepolskiego, ale mającej jego wersje polską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, odpowiedniki przykładów powyższych z innym przedstawieniem przestrzeni nazw:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=en:w|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=en:w|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}en:w|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=pl:w|kanoniczna=tak}}}}
----
----
A dla projektu niemającej wersji polskiej, np. tylko wersję angielską:
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}Template|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=Template|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
Gdy parametr {{Code|nazwa}} jest liczbą, wtedy mamy te same przykłady, co powyżej, tylko ta sama przestrzeń nazw jest w innej postaci przedstawiona:
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}10|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=10|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|po polsku{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|po polsku=tak}}}}
# {{Code|{{s|NpDane|nazwa{{=}}0|link{{=}}tak|klucz projektu{{=}}commons|kanoniczna{{=}}tak}}}} → {{Tt|{{NpDane|nazwa=0|link=tak|klucz projektu=commons|kanoniczna=tak}}}}
===== Zamiana przestrzeni nazw przedmiotowej na dyskusji lub przeciwnie, i transformacje tożsame =====
* Używać tu będziemy dodatkowo parametrów: {{Code|przedmiotowa}} - zamiany przestrzeni nazw na przedmiotową, czy: {{Code|dyskusja}} - na dyskusji.
Można też przechodzić z tej samej przestrzeni nazw w nią samą, lub do niego skojarzonej, tzn. z przedmiotowej do dyskusji lub odwrotnie, wtedy w tym przypadku otrzymujemy nazwę po polsku, dla poskich projektów, dla projektów w danym języku, na nazwę w danym języku, przykłady:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwa kanoniczna
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy prrzestrzeń nazw jest w postaci jej numeru id
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, wtedy otrzymujemy te nazwy w postaci nazwy w języku angielskim (kanoniczne) tych przestrzeni nazw, są te same przykłady, co powyżej, tylko jest inna wersja językowa w wyniku tej samej otrzymanej przestrzeni nazw:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Szablon", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w",
-- Gdy nazwą przestrzeni jest nazwa kanoniczna:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template talk", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: ""Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 11, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 10, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Przejście z tej samej przestrzeni na tą samą możemy uzyskać to wtedy, tzw. przejście tożsamościowe, poprzez tłumaczenie nazw dyskusji na dysusji, i nazw przedmiotowych na przedmiotowe, dla róznych projektów, nie tylko polskich, a tutaj mamy dla języka polskiego, tylko repezentacja językowa może być inna, tutaj jest ta polska (w wersji niekanonicznej) i angielska (w wersji kanonicznej):
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwa niekanoniczna, gdy w ty przypadku chcemy uzyskać nazwę charakterystyczną dla danego języka danego projektu:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja szablonu":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy użyjemy dodatkowo parametr {{Code|kanoniczna}}, uzyskamy nazwę angielską danej przestrzeni nazw, nawet gdy to jest przestrzeń podana w języku polskim, dla polskiego projektu, lub w jezyku charakterystycznym dla danego projektu, jeżeli mamy to w bazie przestrzeni nazw w formie pliku {{Code|.json}}, podane w podstronach modułu {{m|Nazwy/}}, to te nazwy wtedy obsługuje:
<syntaxhighlight lang="lua">
local nazwy_modul = require("Module:Nazwy");
-- Gdy nazwą przestrzeni jest nazwą niekanoniczną:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_1 = nazwy_modul.NpDane{ nazwa = "Szablon", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy nazwą przestrzeni jest nazwą kanoniczną:
---- Zwraca wartość: Template":
local nazwa_przestrzeni_przedmotowej_2 = nazwy_modul.NpDane{ nazwa = "Template", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_2 = nazwy_modul.NpDane{ nazwa = "Template talk", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
-- Gdy przestrzeń nazw jest w postaci jej numeru id:
---- Zwraca wartość: "Template":
local nazwa_przestrzeni_przedmotowej_3 = nazwy_modul.NpDane{ nazwa = 10, przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", }
---- Zwraca wartość: "Template talk":
local nazwa_przestrzeni_dyskusji_3 = nazwy_modul.NpDane{ nazwa = 11, dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Nazwy przestrzeni z myślnikami dolnymi =====
Jeżeli nazwy danych przestrzeni, niezależnie, czy są w postaci niekanonicznej, czy nie, ale jeżeli w nazwie zawierają spację, to one jako w wyniku zamiast nich będą miały dolny myślnik zamiast spacji, gdy użyjemy parametru: {{Code|["z myślnikami dolnymi"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_1 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja_szablonu":
local nazwa_przestrzeni_2 = nazwy_modul.NpDane{ nazwa = "Template talk", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk";:
local nazwa_przestrzeni_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja szablonu", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Template_talk":
local nazwa_przestrzeni_4 = nazwy_modul.NpDane{ nazwa = "Template talk", kanoniczna = "tak", ["z myślnikami dolnymi"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Uzyskiwanie kanonicznej nazwy projektu, nazwy przedmiotowej i jej dyskusji, z jej odpowiednika nazwy przestrzeni nazw =====
Dla przestrzeni nazw: {{NpDane|Wikipedia|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia|link=tak|kanoniczna=tak|nazwij projektem=tak|klucz projektu=pl:w}} możemy uzyskać, gdy dla funkcji {{m|Nazwy|NpDane}} podamy parametr: {{Code|["nazwij projektem"] {{=}} "tak"}}, dla przestrzeni przedmiotowej lub dyskusji: {{NpDane|Wikipedia talk|link=tak|klucz projektu=pl:w}}, jej nazwy projektowej: {{NpDane|Wikipedia talk|link=tak|kanoniczna=tak|nazwij dyskusją projektu=tak|klucz projektu=pl:w}}, gdy podamy parametr {{Code|["nazwij dyskusją projektu"] {{=}} "tak"}}, czyli:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Wikipedia":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij projektem"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij projektem"] = "tak", przedmiotowa = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Dyskusja Wikipedii":
local nazwa_przestrzeni_nazw_4 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_5 = nazwy_modul.NpDane{ nazwa = "Dyskusja Wikipedii", ["nazwij dyskusją projektu"] = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Project talk":
local nazwa_przestrzeni_nazw_6 = nazwy_modul.NpDane{ nazwa = "Wikipedia", ["nazwij dyskusją projektu"] = "tak", dyskusja = "tak", kanoniczna = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
===== Różne wersje sprawdzania istnienia przestrzeni nazw =====
====== Sprawdzanie, czy dana przestrzeń jest poprawnie podane, czy istnieje ======
Możemy sprawdzić, istnienie podanej przestrzeni nazw poprzez użycie parametru {{Code|istnieje}} z wartością niepustą, wtedy dla obu jej wartości uzyskujemy wyniki, wskazujać, czy istnieją przestrzenie nazw istniejące i które nie mają prawa istnieć z racji bytu, w pierwszym przypadku otrzymamy treściwy wynik, a w drugim komunikatro błędzie:
<syntaxhighlight lang="lua">0
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "(błąd)":
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Gdy dana przestrzeń nie istnieje przy użyciu wartości niepustej parametru {{Code|istnieje}}, wtedy otrzymujemy błąd funkcji w postaci tekstu {{Code|(błąd)}}, a gdy nie podamy tego parametru, to otrzymamy nazwę sformatowaną danej nieznanej przestrzeni nazw po usunięciu wszystkich spacji lub dolnych myślników na początku i końcu ciągu oraz zbędnych wewnątrz tego ciągu i zastąpieniu ich kolejnych jedną spacją. A gdy jednak przestrzeń nazw istnieje, to funkcja zachowuje się tak, jakby nie podano tego parametru.
====== Łatwe sprawdzanie istnienia danej przestrzeni nazw ======
Sprawdzamy tutaj istnienie podanej przestrzeni nazw w parserach wikikodu {{Code|MediaWiki}}, wtedy dla nieistniejącej przestrzeni nazw otrrzymamy wynik pusty, a dla istniejącej już nie, wyjątkiem jest przestrzeń główna, dla której wartość otrzymana jest pusta, co nie trudno jest odróżnić od stanu błędu funkcji, chyba, że użyjemy pewnego parametru opisywanego poniżej:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Zwraca wartość: "Szablon":
local nazwa_przestrzeni_nazw_1 = nazwy_modul.NpDane{ nazwa = "Szablon", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: "Moja przestrzeń":
local nazwa_przestrzeni_nazw_2 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
---- Zwraca wartość: nil:
local nazwa_przestrzeni_nazw_3 = nazwy_modul.NpDane{ nazwa = "Moja przestrzeń", istnieje = "tak", ["wynik błędu nietekstowy"] = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
W kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} powyższe wywołanie przy nieznanych przestrzeniach przyjmuje wartość {{Code|nil}} (ostatni przykład), a wikikodzie w szablonach wartość pustą: "".
A jeżeli chcemy sprawdzić, za pomocą funkcji parsera wikikodu: {{Code|{{s|#if:coś|wtedy|przeciwnie}}}}, używając odpowiednika szablonowego {{s|NpDane}}, wtedy musimy użyć parametru: {{Code|["wynik błędu nietekstowy"] {{=}} "tak"}}, używany z: {{Code|istnieje {{=}} "tak"}}, gdy dana przestrzeń nie istnieje, wtedy uzyskamy wartość pustą (bo wartość {{Code|nil}} jest tłumaczone na to), a żeby odróżnić ją od nazwy przestrzeni nazw głównej, to należy dodatkowo użyć: {{Code|["wyświetlana"] {{=}} "tak"}}, wtedy dla wartości pustej tej nazwy przestrzeni nazw, uzyskujemy w wyniku czego nie wartość pustą, czyli: {{Code|(główna)}} dla projektów polskich, lub po użyciu parametru {{Code|["po polsku"] {{=}} "tak"}} z wartością niepustą albo {{Code|(main)}} dla przestrzeni angielskich bądź innych, gdy nie ma obsługi w bazie przestrzeni nazw, tę nazwę można uzyskać też przy parametrze {{Code|kanoniczna {{=}} "tak"}} dla każdego obsługiwanego projektu {{Strong|wiki}}, więc przy takich realiach łatwo to odróżnić od komunikatu błędu tej funkcji.
===== Uzyskiwanie uchwytu danej przestrzeni nazw, analogicznie do funkcji {{Code|mw.site.namespaces}} (ale w sposób inny sformułowana), ale też z innym zestawem parametrów =====
Uchwyt niskopoziomowy do danej przestrzeni nazw nie można uzyskać przy pomocy kodu z: {{Code|mw.site.namespaces}}, ponieważ jest on dla przestrzeni na bieżącym projekcie, a tutaj mamy siostrzany.
Funkcja uzyskująca uchwyt ignoruje wielkość liter w przestrzeni nazw oraz powtórzone odstępy zrealizowane za pomocą spacji lub dolnych myślników.
To wysokopoziomowe uzyskanie uchwytu można utworzyć przy pomocy parametru: {{Code|uchwyt}}:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local uchwyt_1 = nazwy_modul.NpDane{ nazwa = "Szablon", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_2 = nazwy_modul.NpDane{ nazwa = "Template", uchwyt = "tak", ["klucz projektu"] = "pl:w", };
local uchwyt_3 = nazwy_modul.NpDane{ nazwa = 10, uchwyt = "tak", ["klucz projektu"] = "pl:w", };
</syntaxhighlight>
Funkcja {{Code|nazwy_modul.NpDane}} jest bardziej ogólniejsza niż {{Code|mw.site.namespaces}} na projekcie bieżącym, ponieważ ona uwzględnia inne projekty niż polski {{NS|l=tak|w=tak}}, bo uwzględnia większą liczbę nazw przestrzeni nazw, czyli ona obejmuje wszystkie znane przestrzenie nazw, i dlatego należy stosować tę funkcję, a nie dedykowaną tabelę z połączoną z metatabelką za pomocą funkcji {{lpg|Lua}}.
== Funkcje nazw serwisowych projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=d}} ==
=== {{Code|m.NAZWASERWISU()}} ===
==== Odpowiednik szablonowy ====
Odpowiednik szablonowy jest pod nazwą {{s|NAZWASERWISU}} (skrót: {{s|NS}}). Jego parametry są podobne do jego wersji bibliotecznej.
Ten szablon wykorzystuje tę funkcję biblioteczną uruchamianą w ramce.
==== Funkcja biblioteczna ====
Szablon jest używany do uzyskania nazwy serwisu danej wiki, ewentualnie w postaci linku do strony głównej projektu danej wiki lub do artykułu o danej wiki na {{lpg|Wikipedia|Wikipedii}}, w jakieś podanej wersji językowej.
* Parametry podstawowe
** {{Parametr|wyspecjalizowana|tak}}, tylko dla tej funkcji wywołanej w postaci ramki w wikikodzie w szablonach, gdy do niej wsadzamy bezpośrednio jako dzieci, a w przypadku z rodzica to ten parametr jest niepotrzebny lub powinien przyjmować wartość pustą,
* Inne parametry
* Ta funkcja dalsze ma takie same parametry, co szablon w jego pełnej nazwie: {{s|NAZWASERWISU}}, lub skrótowej: {{s|NS}}.
Wszystkie powyższe zmienne są opcjonalne
===== Opis parametrów użytych razem z parametrem {{Code|link}} =====
Szablon przyjmuje parametr opcjonalny {{Code|link}} ({{s|NS|l{{=}}tak}}), dzięki któremu jest wyświetlany link, do strony głównej tego projektu, w postaci: {{Code|{{NS|l=tak}}}}, o nazwie linku, będącą jednocześnie nazwą serwisu projektu '''{{NS|l=tak}}'''. Gdy dodamy parametr {{Code|wikipedia{{=}}tak}} do wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}}, wtedy uzyskamy wynik: {{Code|{{NS|l=tak|w=tak}}}}, w innym przypadku, gdy linkujemy do angielskiej {{NS|w=tak|l=tak|pk=mj|k=tak}}, wtedy dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} mamy: {{Code|{{NS|l=tak|w=tak|kj=en}}}}, a w przypadku angielskiego {{NS|w=tak|l=tak|pk=d}} dla wikikodu {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} mamy wynik w postaci: {{Code|{{NS|l=tak|kj=en}}}}, a jeśli użyjemy parametru {{Code|kod projektu}}, wtedy wywołanie {{Code|{{s|NS|link{{=}}tak|kp{{=}}s}}}}, to mamy: {{Code|{{NS|l=tak|kp=s}}}}, a gdy dodamy dodatkowo {{Code|wikipedia{{=}}tak}}, zatem {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} jest o wyniku: {{Code|{{NS|l=tak|w=tak|kp=s}}}}.
* Wyniki z parametrem {{Parametr|link|tak}} zostały obtoczone znacznikiem {{Tag|code}} dla odróżnienia rezultatu od reszty tekstu.
===== Wywołania szablonu z tekstem z małymi literami po linku (parametr: {{Code|po}}) i z dowolnym tekstem w nazwie linku (parametr: {{Code|za}}) =====
Parametr {{Parametr|link|tak}} w szablonie {{s|NAZWASERWISU}} mówi, że ma być podany link do strony głównej projektu lub artykułu na {{NS|l=tak|k=w}}. Można w ni podać parametr {{Parametr|po|<łańcuch tekstowy>}}, który jest za linkiem, podobnie {{Parametr|za|<łańcuch tekstowy>}}, który jest w nazwie linku, ale względem jej originalnej nazwy za nim.
====== Proste przykłady użycia, z linkiem do projektu bieżącego, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do polskiego projektu {{NS|w=tak|l=tak|pk=mj}} do jego strony głównej.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|z=a}}}}
====== Proste przykłady użycia, z linkiem do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na polskiej {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z polską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} na podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. Jest to projekt: {{NS|l=tak|k=en:s}}, którego językiem jest: {{lpg|{{#invoke:lang|hasło|es}}}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|z=a}}}}
====== Przykłady użycia, z linkiem do obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}, z niepolską podanego nazwą projektu, przy użyciu parametru {{Code|link}} ======
Gdy chcemy wyświetlić link do artykułu o {{NS|w=tak|l=tak|k=b|pk=mj}} do podanej obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}} podany za pomocą parametru {{Code|["klucz projektu"] {{=}} "en:s"}}. A nazwa linku ma być podana w języku tego projektu.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", po = "a", };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["klucz projektu"] = "en:s", ["w języku wiki"] = "tak", za = "a", };
</syntaxhighlight>
; Analogiczne wywołanie szablonu{{Dk}}
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}} → {{Tt|{{NS|l=tak|w=tak|k=en:s|jw=tak|z=a}}}}.
; Kod wywołania tych szablonów:
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|p{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|p=a}}}}
;; Dla wywołania {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|k{{=}}en:s|jw{{=}}tak|z{{=}}a}}}}{{Dk}}
{{PreNowiki|{{NS|l=tak|w=tak|k=en:s|jw=tak|za=a}}}}
===== Wywołania szablonu dotyczące, w {{NS|w=tak|l=tak|k=w|pk=mj}} iub nie, kodzie dla projektu {{NS|w=tak|l=tak|pk=m}} dla różnych wersji językowych =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę projektu w postaci linku do artykułu strony głównej na {{NS|w=tak|l=tak|pk=mj}} lub artykułu na polskiej lub obcojęzycznej {{NS|w=tak|l=tak|k=w|pk=mj}}. Do jakiej {{NS|w=tak|l=tak|k=w|pk=mj}} ma być link, to wskazuje kod języka, np.: {{Code|["kod języka"] {{=}} "en"}}. Gdy nie podamy tego kodu, to linkujemy tylko do polskiego {{NS|w=tak|l=tak|pk=mj}} lub do polskiej {{NS|w=tak|l=tak|k=w|pk=mj}} (jeżeli podamy parametr {{Code|wikipedia {{=}} "tak"}}). A gdy podany jest ten kod, to możemy linkować nie tylko do polskich projektów siostrzanych polskiego {{NS|w=tak|l=tak|pk=mj}} (ale tylko różnych jego wersji językowych), ale też można linkować do obcojęzycznych projektów, którym jest Wikipedia do artykułu o tym projekcie.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISSU{}; };
local link_2 = nazwy_modul.NAZWASERWISU{ link = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", };
local link_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", };
local link_5 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", };
local link_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", };
local link_7 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS}}}} → {{Tt|{{NS}}}},
* {{Code|{{s|NS|l{{=}}tak}}}} → {{Tt|{{NS|l=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|kj=en}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en}}}}.
===== Wywołanie szablonu dotyczące innego projektu niż ten =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Ale też możemy linkować do stron głównych innych projektów niż {{NS|w=tak|l=tak|pk=m}}. Robimy to za pomocą parametru: {{Code|["kod projektu"] {{=}} "s"}}, nie licąc parametru języka, ale też możemy linkować do artykułu o danym projekcie na {{NS|w=tak|l=tak|k=w|pk=mj}}. A jeżeli podamy kod języka {{Code|["kod języka"] {{=}} "en"}}, wtedy linkujemy do angielskich projektów, w tym również do {{NS|w=tak|l=tak|k=w|pk=mj}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
---- Tutaj linkujemy do Wikiźródeł do jej strony głównej
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", };
--- Co powyżej, tylko do artykułu na Wikipedii o Wikiźródłach
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s", };
-- Tutaj linkujemy do Wikibooksa do jej strony głównej w jakieś jej wersji językowej
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
-- Jak powyżej, tylko do artykułu Wikipedii w jakieś wersji językowej o Wikiźródłach
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s}}}}.
===== Wywołania szablonu z nazwą linku danej wiki =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Gdy chcemy podać nazwę linku przy pomocy parametru {{Code|["w języku wiki"] {{=}} "tak"}}, w języku danej wiki, którego podajemy przy parametrze {{Code|["kod języka"] {{=}} "en"}}, dla projektu podanego w zmiennej {{Code|["kod projektu"] {{=}} "s"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local linki_1 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_2 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["w języku wiki"] = "tak", };
local linki_3 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_4 = nazwy_modul.NAZWASERWISU{ link = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_5 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "pl", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
local linki_6 = nazwy_modul.NAZWASERWISU{ link = "tak", wikipedia = "tak", ["kod języka"] = "en", ["kod projektu"] = "s", ["w języku wiki"] = "tak", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|l{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|kj=en|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}pl|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=pl|kp=s|jw=tak}}}},
* {{Code|{{s|NS|l{{=}}tak|w{{=}}tak|kj{{=}}en|kp{{=}}s|jw{{=}}tak}}}} → {{Tt|{{NS|l=tak|w=tak|kj=en|kp=s|jw=tak}}}}.
===== Wywołanie szablonu z podaną nazwą linku =====
====== Przykłady użycia funkcji {{Code|nazwy_modul.NAZWASERWISU()}} ======
Jeżeli chcemy podać ściśle określony ciąg, który jest nazwą linku, do linkowania do strony głównej lub artykułu na {{NS|w=tak|l=tak|k=w|pk=mj}} o danym projekcie, np. inną niż nazwa projektu. Tutaj nazwą linku jest {{Code|[1] {{=}} "Biblioteka książek"}}.
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
local link_1 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", };
local link_2 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", };
local link_3 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
local link_4 = nazwy_modul.NAZWASERWISU{ [1] = "Biblioteka książek", link = "tak", wikipedia = "tak", ["kod projektu"] = "s",["kod języka"] = "en", };
</syntaxhighlight>
====== Analogiczne wywołanie szablonu ======
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak}}}},
* {{Code|{{s|NS|Biblioteka książek|l{{=}}tak|w{{=}}tak}}}} → {{Tt|{{NS|Biblioteka książek|l=tak|w=tak}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|kp=s|kj=en}}}},
* {{Code|{{s|NS|Biblioteka wikiźródeł|l{{=}}tak|w{{=}}tak|kp{{=}}s|kj{{=}}en}}}} → {{Tt|{{NS|Biblioteka wikiźródeł|l=tak|w=tak|kp=s|kj=en}}}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3xmz2nicl363b98rmw4iyr63fivnwm4
Wikibooks:Moduły/Nazwy
4
63010
553118
552301
2026-08-24T17:47:22Z
Persino
2851
/* Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy */
553118
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzenie niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} i użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p5371lwtgoyl4srg3e2ekbw3hpva23t
553119
553118
2026-08-24T17:50:48Z
Persino
2851
/* Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a */
553119
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} i użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
awvuylxxbevml5rr1lrft3s3ldimad8
553122
553119
2026-08-24T18:07:08Z
Persino
2851
/* Spis treści funkcji nazw */
553122
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, oraz liczenie przy wykorzystywaniu tych konstrukcji, nazw sub- książki i strony, także nazwy stron korzeni (podstaw strony).
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
eb0ol4sux4zc3k84awzdtox74z9o4lt
553123
553122
2026-08-24T18:10:10Z
Persino
2851
/* Spis treści funkcji nazw */
553123
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw subksiążki i strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9ev9zkg8gwrocvkl0p5crrykdo0ro6u
553124
553123
2026-08-24T18:12:29Z
Persino
2851
/* Spis treści funkcji nazw */
553124
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jjapwe9u28yz1l1pwe912836br9wh1i
553125
553124
2026-08-24T18:13:00Z
Persino
2851
/* Spis treści funkcji nazw */
553125
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
evylp9aflgjc1lthsqpqui1k1iucpzx
553126
553125
2026-08-24T18:14:15Z
Persino
2851
/* Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy */
553126
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewnwe kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2pdje4mr7578qc29ukjjnbog3kc7v7c
553127
553126
2026-08-24T18:17:32Z
Persino
2851
/* Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy */
553127
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne sa ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f3tpf89njok1s5doief7qkzxoemfsu4
553128
553127
2026-08-24T18:18:51Z
Persino
2851
/* Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy */
553128
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i są obecne na polski projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8ydqaumbh8lnl7s4hqpuokij24imbay
553129
553128
2026-08-24T18:21:45Z
Persino
2851
/* Zestaw nazw przestrzeni nazw na aktualnym projekcie */
553129
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i obecne, na polskim projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich użhywamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
nfg6vbh8onfli51e3gi10lifohrfwun
553130
553129
2026-08-24T18:26:27Z
Persino
2851
/* Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy */
553130
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jego parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i obecne, na polskim projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich używamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m0722hisadvqjay1sb30ddexob06x13
553205
553130
2026-08-24T23:46:01Z
Persino
2851
553205
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jej parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od półci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i obecne, na polskim projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich używamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gz33w6vcdwejxhshdwmmabiny5gv2op
553206
553205
2026-08-24T23:48:02Z
Persino
2851
/* Zestaw nazw przestrzeni nazw na aktualnym projekcie */
553206
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jej parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od płci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i obecne, na polskim projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich używamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0eq0t4x16r5i50eean9d28ng3zta80r
553207
553206
2026-08-24T23:56:19Z
Persino
2851
/* Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a */
553207
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Rozdział|{{ld2|Nazwy}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Rozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Kod modułu znajduje się na stronie {{ld2|Nazwy}}. Ten moduł służy do określania nazw poszczególnych nazw przestrzeni nazw na projekcie polskim {{NS|l=tak|w=tak}}, jak i innych siostrzanych projektów, a także buduje referencje linkujące do poszczególnych stron wyjaśniające kwestie przestrzeni nazw, a także do projektów lokujące do stron opisujące poszczególne projekty, na różnych wersjach językowych, serwisu: {{NS|l=tak|k=w|w=tak}}, lub do stron głównych poszczególnych projektów siostrzanych, w tym do tego projektu.
== Wprowadzenie do funkcji nazw ==
=== Wywołanie modułu ===
Moduł wywołujemy poprzez napisanie kwestii:
<syntaxhighlight lang="lua">
local nazwy_modul=require("Module:Nazwy");
</syntaxhighlight>
=== Definicje funkcji w module ===
Funkcje w module są zdefiniowane lub można zdefiniować, co jest uwidocznione w tej dokumentacji, w postaci różnych możliwości:
<syntaxhighlight lang="lua">
local m={};
...
function m.Nazwa_funkcji(...) ... end;
m.Nazwa_funkcji=function(...) ... end;
m["Nazwa funkcji"]=function(...) ... end;
...
return m;
</syntaxhighlight>
Funkcje można definiować na trzy możliwe sposoby według ramki powyżej, a w tych definicjach ciało funkcji i jej parametry pozostaje niezmienne.
=== Zestaw nazw przestrzeni nazw na aktualnym projekcie i jego wersjach siostrzanych ===
==== Zestaw nazw przestrzeni nazw na aktualnym projekcie ====
Tabela przedstawia zestaw nazw przestrzeni, po polsku, dostępne na polskim {{Code|{{NS|l=tak|pk=mj}}}} wraz z ich nazwami kanonicznymi (w języku angielskim), wraz z ich numerami {{Code|id}}, ze stronami odniesienia, które są widoczne i użyte w szablonie {{s|Np}} (i w funkcji {{m|Nazwy|Np|{{Code|<nazwa przestrzeni nazw>}}|link{{=}}tak|wyspecjalizowana{{=}}tak}}) przy pomocy parametru {{Parametr|link|tak}}.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=25|liczba kolumn=8
| tytuł = Przestrzenie nazw{{Br}}
(dla każdej przedmiotowej przestrzeni jest przestrzeń dyskusji z nr n+1)
| komórka 1_1 = Przestrzeń przedmiotowa | nagłówek 1_1 = tak | kolumny 1_1 = 4 | komórka 1_5 = Przestrzeń dyskusji | nagłówek 1_5 = tak | kolumny 1_5 = 4
| komórka 2_1 = Nazwa kanoniczna | nagłówek 2_1 = tak | komórka 2_2 = Nazwa niekanoniczna | nagłówek 2_2 = tak | komórka 2_3 = Id | nagłówek 2_3 = tak | komórka 2_4 = Odniesienie | nagłówek 2_4 = tak | komórka 2_5 = Nazwa kanoniczna | nagłówek 2_5 = tak | komórka 2_6 = Nazwa niekanoniczna| nagłówek 2_6 = tak | komórka 2_7 = Id| nagłówek 2_7 = tak | komórka 2_8 = Odniesienie | nagłówek 2_8 = tak
| komórka 3_1 = Przestrzenie nazw główne | nagłówek 3_1 = tak | kolumny 3_1 = 7 | komórka 3_8 = {{lpp2|Strona dyskusji}} | wiersze 3_8 = 23
| komórka 4_1 = - | komórka 4_2 = - | komórka 4_3 = 0 | wiersze 4_3 = 2| komórka 4_4 = {{lp2|Jak edytować artykuły}} | wiersze 4_4 = 2 | komórka 4_5 = Talk | wiersze 4_5 = 2 | komórka 4_6 = Dyskusja | wiersze 4_6 = 2 | komórka 4_7 = 1 | wiersze 4_7 = 2
| komórka 5_1 = (main) | komórka 5_2 = (główna)
| komórka 6_1 = Wikijunior | komórka 6_2 = Wikijunior | komórka 6_3 = 104 | komórka 6_4 = {{lj2|Strona główna}} | komórka 6_5 = Wikijunior talk | komórka 6_6 = Dyskusja Wikijuniora | komórka 6_7 = 105
| komórka 7_1 = File | komórka 7_2 = Plik | komórka 7_3 = 6 | komórka 7_4 = {{lpp2|Ilustrowanie}} | komórka 7_5 = File talk | komórka 7_6 = Dyskusja pliku | komórka 7_7 = 7
| komórka 8_1 = Category | komórka 8_2 = Kategoria | komórka 8_3 = 14 | komórka 8_4 = {{lpp2|Kategorie}} | komórka 8_5 = Category talk | komórka 8_6 = Dyskusja kategorii | komórka 8_7 = 15
| komórka 9_1 = Przestrzenie nazw meta | nagłówek 9_1 = tak | kolumny 9_1 = 7
| komórka 10_1 = User | wiersze 10_1 = 2 | komórka 10_2 = Wikipedyst(a|ka) | komórka 10_3 = 2 | wiersze 10_3 = 2 |komórka 10_4 = {{lpr2|Strona użytkownika}} | wiersze 10_4 = 2 | komórka 10_5 = User talk | wiersze 10_5 = 2 | komórka 10_6 = Dyskusja wikipedyst(y|ki) | komórka 10_7 = 3 | wiersze 10_7 = 2
| komórka 11_2 = Użytkowni(k|czka) | komórka 11_6 = Dyskusja użytkowni(ka|czki)
| komórka 12_1 = Wikibooks | komórka 12_2 = Wikibooks | komórka 12_3 = 4 | wiersze 12_3 = 3 | komórka 12_4 = {{lk2|Metastrony Wikibooks}} | wiersze 12_4 = 3 | komórka 12_5 = Wikibooks talk | komórka 12_6 = Dyskusja wikibooks | komórka 12_7 = 5 | wiersze 12_7 = 3
| komórka 13_1 = Project | komórka 13_2 = Projekt | komórka 13_5 = Project talk | komórka 13_6 = Dyskusja projektu
| komórka 14_1 = - | komórka 14_2 = WB | komórka 14_5 = - | komórka 14_6 = -
| komórka 15_1 = Help | komórka 15_2 = Pomoc | komórka 15_3 = 12 | komórka 15_4 = {{lp2|Spis treści}} | komórka 15_5 = Help talk | komórka 15_6 = Dyskusja pomocy | komórka 15_7 = 13
| komórka 16_1 = Przestrzenie nazw techniczne | nagłówek 16_1 = tak | kolumny 16_1 = 7
| komórka 17_1 = MediaWiki | komórka 17_2 = MediaWiki | komórka 17_3 = 8 | komórka 17_4 = {{lpp2|Przestrzeń nazw/MediaWiki}} | komórka 17_5 = MediaWiki talk | komórka 17_6 = Dyskusja MediaWiki | komórka 17_7 = 9
| komórka 18_1 = Template | komórka 18_2 = Szablon | komórka 18_3 = 10 | komórka 18_4 = {{lr2|Szablony}} | komórka 18_5 = Template talk | komórka 18_6 = Dyskusja szablonu | komórka 18_7 = 11
| komórka 19_1 = Module | komórka 19_2 = Moduł | komórka 19_3 = 828 | komórka 19_4 = {{lpr2|Lua}} | komórka 19_5 = Module talk | komórka 19_6 = Dyskusja modułu | komórka 19_7 = 829
| komórka 20_1 = Przestrzenie nazw wirtualne | nagłówek 20_1 = tak | kolumny 20_1 = 7
| komórka 21_1 = Special | komórka 21_2 = Specjalna | komórka 21_3 = -1 | komórka 21_4 = {{lc2|Strony specjalne}} | komórka 21_5 = - | scal 21_5 = 2 3
| komórka 22_1 = Media | komórka 22_2 = Media | komórka 22_3 = -2 | komórka 22_4 = {{lpp2|Ilustrowanie}}
| komórka 23_1 = Przestrzenie nazw definiowane | nagłówek 23_1 = tak | kolumny 23_1 = 7
| komórka 24_1 = Portal | komórka 24_2 = Portal | komórka 24_3 = - | komórka 24_4 = {{lr|Przestrzenie nazw}} | wiersze 24_4 = 2 | komórka 24_5 = Portal talk | komórka 24_6 = Dyskusja portalu | komórka 24_7 = -
| komórka 25_1 = Wikiproject | komórka 25_2 = Wikiprojekt | komórka 25_3 = - | komórka 25_5 = Wikiproject talk | komórka 25_6 = Dyskusja wikiprojektu | komórka 25_7 = -
}}
Tabela ta przedstawiana jest względem modułu {{m|Nazwy}}. W niej widać nieznane, lub znane o nieznanych nazwach, przestrzenie dla projektu {{NS|w=tak|l=tak}}, ale znane dla tego modułu.
Tabela przedstawia nazwy kanoniczne i niekanoniczne oraz ich numery {{Code|id}} przedstawiające numery przestrzeni nazw, jako różne przedstawienia tej samej przestrzeni. Można tłumaczyć pomiędzy nimi. Za pomocą powyższej tabeli możemy transformować przestrzeń na przedmiotową lub dyskusji, zakładając, że one nie transformują tego samego na to samo, co też jest możliwe.
Niektóre przestrzenie zależą od płci użytkownika, jak przestrzeń: {{Np|User|link=tak}}, i względem tego szablonu, tzn.: {{s|Np}} lub funkcji: {{m|Nazwy|Np}}, są one względem siebie równoważne oraz przedstawiają tą samą przestrzeń nazw.
Tabela też przedstawia przestrzenie nazw definiowane, bez numerów {{Code|id}}, które są wzorowane i obecne, na polskim projekcie {{NS|l=tak|k=w}}.
==== Zestaw nazw przestrzeni nazw na wersjach siostrzanych polskiego Wikibooks'a ====
Tabela przedstawia zestawienie w module {{m|Nazwy/przestrzenie}} dla tabeli {{Code|s.charakterystyczne_przestrzenie_nazw}}, która obrazuje dane dotyczące niektórych przestrzeni nazw, ewentualnie dla niektórych wersji językowych (projektów językowych), dla niektórych projektów lokalnych samego projektu {{Code|Wikibooks}} oraz jego niektórych wersji językowych i projektów siostrzanych.
{{Tabela|klasa=wikitable tekst-centruj-td|klasa op=tabela-strona|pozycja=centruj|liczba wierszy=31|liczba kolumn=8
| komórka 1_1 = Kod projetu | nagłówek 1_1 = tak | wiersze 1_1 = 2 | komórka 1_2 = Nazwa wiki | nagłówek 1_2 = 2 | wiersze 1_2 = 2 | komórka 1_3 = Kod języka | nagłówek 1_3 = tak | wiersze 1_3 = 2 | komórka 1_4 = Nazwa kanoniczna | nagłówek 1_4 = tak | wiersze 1_4 = 2 | komórka 1_5 = Przestrzeń przedmiotowa | nagłówek 1_5 = tak | kolumny 1_5 = 2 | komórka 1_7 = Przestrzeń dyskusji | nagłówek 1_7 = tak | kolumny 1_7 = 2
| komórka 2_5 = Nazwa | nagłówek 2_5 = tak | komórka 2_6 = Aliasy | nagłówek 2_6 = tak | komórka 2_7 = Nazwa | nagłówek 2_7 = tak | komórka 2_8 = Aliasy | nagłówek 2_8 = tak
| komórka 3_1 = Projekty niejęzykowe | nagłówek 3_1 = tak | kolumny 3_1 = 8
| komórka 4_1 = c | komórka 4_2 = Commons | komórka 4_3 = - | kolumny 4_3 = 6
| komórka 5_1 = species | komórka 5_2 = Wikispecies | komórka 5_3 = - | kolumny 5_3 = 6
| komórka 6_1 = d | komórka 6_2 = Wikidata | komórka 6_3 = en | komórka 6_4 = Property | komórka 6_5 = Property | komórka 6_6 = - | komórka 6_7 = Property talk | komórka 6_8 = -
| komórka 7_1 = m | komórka 7_2 = Meta | komórka 7_3 = - | kolumny 7_3 = 6
| komórka 8_1 = mw | wiersze 8_1 = 2 | komórka 8_2 = Project | wiersze 8_2 = 2 | komórka 8_3 = en | komórka 8_4 = Extension | wiersze 8_4 = 2 | komórka 8_5 = Extension | komórka 8_6 = - | wiersze 8_6 = 2 | komórka 8_7 = Extension talk | komórka 8_8 = - | wiersze 8_8 = 2
| komórka 9_3 = pl | komórka 9_5 = Rozszerzenie | komórka 9_7 = Dyskusja rozszerzenia
| komórka 10_1 = wikimania | komórka 10_2 = Wikimania | komórka 10_3 = - | kolumny 10_3 = 6
| komórka 11_1 = Projekty językowe | nagłówek 11_1 = tak | kolumny 11_1 = 8
| komórka 12_1 = w | wiersze 12_1 = 4 | komórka 12_2 = Wikipedia | wiersze 12_2 = 4 | komórka 12_3 = pl | wiersze 12_3 = 4 | komórka 12_4 = Project | komórka 12_5 = Wikipedia | komórka 12_6 = WP | komórka 12_7 = Dyskusja wikipedii | komórka 12_8 = -
| komórka 13_4 = User | komórka 13_5 = Wikipedysta | komórka 13_6 = Użytkownik | komórka 13_7 = Dyskusja wikipedysty | komórka 13_8 = Dyskusja użytkownika
| komórka 14_4 = Portal | komórka 14_5 = Portal | komórka 14_6 = - | komórka 14_7 = Dyskusja portalu | komórka 14_8 = -
| komórka 15_4 = Wikiproject | komórka 15_5 = Wikiprojekt | komórka 15_6 = - | komórka 15_7 = Dyskusja wikiprojektu | komórka 15_8 = -
| komórka 16_1 = b | wiersze 16_1 = 5 | komórka 16_2 = Wikibooks | wiersze 16_2 = 5 | komórka 16_3 = pl | wiersze 16_3 = 3 | komórka 16_4 = Project | komórka 16_5 = Wikibooks | komórka 16_6 = WB | komórka 16_7 = Dyskusja Wikibooks | komórka 16_8 = -
| komórka 17_4 = User | komórka 17_5 = Wikipedysta | komórka 17_6 = Użytkownik | komórka 17_7 = Dyskusja wikipedysty | komórka 17_8 = Dyskusja użytkownika
| komórka 18_4 = Wikijunior | komórka 18_5 = Wikijunior | komórka 18_6 = - | komórka 18_7 = Dyskusja Wikijuniora | komórka 18_8 = -
| komórka 19_3 = en | wiersze 19_3 = 2 | komórka 19_4 = Project | komórka 19_5 = Wikibooks | komórka 19_6 = - | komórka 19_7 = Wikibooks talk | komórka 19_8 = -
| komórka 20_4 = Wikijunior | komórka 20_5 = Wikijunior | komórka 20_6 = - | komórka 20_7 = Wikijunior talk | komórka 20_8 = -
| komórka 21_1 = wikt | wiersze 21_1 = 2 | komórka 21_2 = Wiktionary | wiersze 21_2 = 2 | komórka 21_3 = pl | wiersze 21_3 = 2 | komórka 21_4 = Project | komórka 21_5 = Wikisłownik | komórka 21_6 = - | komórka 21_7 = Dyskusja Wikisłownika | komórka 21_8 = -
| komórka 22_4 = User | komórka 22_5 = Wikisłownikarz | komórka 22_6 = Użytkownik | komórka 22_7 = Dyskusja wikisłownikarza | komórka 22_8 = Dyskusja użytkownika
| komórka 23_1 = q | wiersze 23_1 = 2 | komórka 23_2 = Wikiquote | wiersze 23_2 = 2 | komórka 23_3 = pl | wiersze 23_3 = 2 | komórka 23_4 = Project | komórka 23_5 = Wikicytaty | komórka 23_6 = - | komórka 23_7 = Dyskusja Wikicytatów | komórka 23_8 = -
| komórka 24_4 = User | komórka 24_5 = Użytkownik | komórka 24_6 = - | komórka 24_7 = Dyskusja użytkownika | komórka 24_8 =
| komórka 25_1 = s | wiersze 25_1 = 2 | komórka 25_2 = Wikisource | wiersze 25_2 = 2 | komórka 25_3 = pl | wiersze 25_3 = 2 | komórka 25_4 = Project | komórka 25_5 = Wikiźródła | komórka 25_6 = - | komórka 25_7 = Dyskusja Wikiźródeł | komórka 25_8 = -
| komórka 26_4 = User | komórka 26_5 = Wikiskryba | komórka 26_6 = Użytkownik | komórka 26_7 = Dyskusja wikiskryby | komórka 26_8 = Dyskusja użytkownika
| komórka 27_1 = voy | wiersze 27_1 = 2 | komórka 27_2 = Wikivoyage | wiersze 27_2 = 2 | komórka 27_3 = pl | wiersze 27_3 = 2 | komórka 27_4 = Project | komórka 27_5 = Wikipodróże | komórka 27_6 = - | komórka 27_7 = Dyskusja Wikipodróży | komórka 27_8 = -
| komórka 28_4 = User | komórka 28_5 = Użytkownik | komórka 28_6 = - | komórka 28_7 = Dyskusja użytkownika | komórka 28_8 = -
| komórka 29_1 = n | wiersze 29_1 = 2 | komórka 29_2 = Wikinews | wiersze 29_2 = 2| komórka 29_3 = pl | wiersze 29_3 = 2 | komórka 29_4 = Project | komórka 29_5 = Wikinews | komórka 29_6 = - | komórka 29_7 = Dyskusja Wikinews | komórka 29_8 = -
| komórka 30_4 = User | komórka 30_5 = Wikireporter | komórka 30_6 = Uzytkownik | komórka 30_7 = Dyskusja wikireportera | komórka 30_8 = Dyskusja użytkownika
| komórka 31_1 = v | komórka 31_2 = Wikiversity | komórka 31_3 = - | kolumny 31_3 = 6
}}
Tabela zawiera tylko ponadpodstawowe przestrzenie nazw z rożnych projektów, językowych lub nie, albo nie zawiera ich wcale, wtedy te przestrzeni są generowane na podstawie przy pomocy elementu tabeli {{Code|{{!(}}"wiki"{{)!}}}}, w tej tabeli jest to kolumna {{Code|Nazwa wiki}} - ta nazwa jest wykorzystana do tworzenia nazwy przestrzeni niekanonicznej przestrzeni nazw projektu. Przestrzenie podstawowe są takie same dla wszystkich projektów, tylko nazwy kanoniczne się nie zmieniają, a nazwy niekanoniczne są specyficzne dla danego języka projektu. Wersje językowe tych tabeli angielskich projektów zawierają tylko nazwy kanoniczne, które są tożsame z tymi niekanonicznymi.
Ta tabela jest wykorzystywana przez szablon {{s|NpDane}} do tłumaczenia {{Code|id}} lub nazwy kanonicznej, na niekanoniczną, jeżeli istnieje, a jeżeli nie, to zamiast nazwy niekanonicznej wyświetlana jest nazwa kanoniczna. Można też tłumaczyć nazwę kanoniczną, czy niekanoniczną, na numer {{Code|id}}, ten numer jest uzyskiwany, dzięki szablonowi {{s|Np}}. Tak się dzieje, bo: {{s|NpDane}} i {{s|Np}}, mają względem siebie wspólne nazwy przestrzeni nazw kanoniczne o takich samych {{Code|id}}, ale o ogólnie innych nazwach niekanonicznych.
Nazwy polskie, jako odpowiedni nazw angielskich różnych przestrzeni nazw, na innych projektach obcojęzycznych, można przetłumaczyć na polski względem tabelek powyżej, znając jedynie ich nazwy kanoniczne. Do tego celu używamy parametru {{Parametr|po polsku|tak}}.
== Obsługiwane kody projektów lokalnych projektów siostrzanych {{NS|l=tak|w=tak}} i ich pełne nazwy ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=14|liczba kolumn=2
| nagłówek 1 = Kod projektu | nagłówek 2 = Pełna nazwa projektu
| komórka 1_1 = w | komórka 1_2 = {{NS|link=tak|k=w}}
| komórka 2_1 = b | komórka 2_2 = {{NS|link=tak|k=b}}
| komórka 3_1 = wikt | komórka 3_2 = {{NS|link=tak|k=wikt}}
| komórka 4_1 = q | komórka 4_2 = {{NS|link=tak|k=q}}
| komórka 5_1 = s | komórka 5_2 = {{NS|link=tak|k=s}}
| komórka 6_1 = voy | komórka 6_2 = {{NS|link=tak|k=voy}}
| komórka 7_1 = n | komórka 7_2 = {{NS|link=tak|k=n}}
| komórka 8_1 = v | komórka 8_2 = {{NS|link=tak|k=v}}
| komórka 9_1 = commons | komórka 9_2 = {{NS|link=tak|k=commons}}
| komórka 10_1 = wikispecies | komórka 10_2 = {{NS|link=tak|k=wikispecies}}
| komórka 11_1 = d | komórka 11_2 = {{NS|link=tak|k=d}}
| komórka 12_1 = mw | komórka 12_2 = {{NS|link=tak|k=mw}}
| komórka 13_1 = m | komórka 13_2 = {{NS|link=tak|k=m}}
| komórka 14_1 = wikimania | komórka 14_2 = {{NS|link=tak|k=wikimania}}
}}
Kody projektów przedstawiają pewne kody, jakie można włożyć do szablonu {{s|NpDane}}, czyli {{Parametr|kod projektu}}, nie wliczając: {{Parametr|kod jezyka}}, jak również do {{Parametr|klucz projektu}}, do którego można włożyć kombinację kodów języka i projektów, lub pojedynczy kod. Te kody natomiast nie można umieścić w szablonie {{s|Np}}, bo one tam się nie nadają, bo on tego nie używa.
Szablon {{s|NS|l{{=}}tak|kj{{=}}|kp{{=}}}} ({{s|NS|l{{=}}tak|k{{=}}}}), użyty w tabelce, też zawiera te kody, użyty przy pomocy pary, lub pojedynczego parametru, przedstawia nazwy projektów wraz z referencjami do odpowiednich stron głównych. Strony ich główne są ściągnięte za pomocą projektu: {{NS|l=tak|k=d}}, przy pomocy pewnej biblioteki i w niej funkcji: {{m|Wiki|WikidaneOdpowiednikStrony|nazwa strony{{=}}|kod języka{{=}}|kod projektu{{=}}|klucz projektu{{=}}|kod języka bazy{{=}}|kod projektu bazy{{=}}|klucz projektu bazy{{=}}}}. Zamiast: {{Parametr|klucz projektu}}, można użyć: {{Parametr|kod języka}} i {{Parametr|kod projektu}}, oraz odwrotnie, podobnie jest z ich wersjami dotyczące bazy. Nazwę strony: {{Parametr|nazwa strony}}, tłumaczonymi z projektu bazy przy pomocy kodów projektu i języka, na inny projekt operujący innymi kodami. W szczególnym przypadku możemy użyć tłumaczenia tożsamościowego. Tak właśnie działa właśnie ten szablon, o którym wspomnieliśmy.
Strony w tym szablonie są tłumaczone przy pomocy, wychodząc od strony głównej: {{lr2|Strona główna}}, transformując je na inne projekty, tak je podawaliśmy w tej wspomnianej tabelce.
Kody projektów, to nie jest to samo, co języka, projekty, to takie coś jak kod projektu {{NS|k=w|w=tak}}, a kod języka to przedstawia język, dzięki któremu porozumiejemy się na pojekcie i w którym on jest właśnie pisany, jak {{Code|pl}} lub {{Code|en}}, ich używamy poprzez przedstawienie: {{Parametr|kod języka|en}} lub {{Parametr|klucz projektu|en:w}} (tutaj używamy wraz kodem projektu, lub bez niego w postaci: {{Parametr|klucz projektu|en}}, w tym pierwszy przenosimy się do angielskiej {{NS|pk=d|l=tak|k=en:w}}, albo w tym drugim przypadku do angielskiego: {{NS|l=tak|pk=d|k=en:b}}.
== Strony projektowe, użyte do tłumaczenia niektówych przestrzeni przedmiotowychna inne języki, z postaci kanonicznej (jako w nazwie angielskiej) do niekanonicznej (specyficznej dla projektu) ==
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=9|liczba kolumn=2
| nagłówek 1 = Nazwa kanoniczna | nagłówek 2 = Strona
| komórka 1_1 = Project | komórka 1_2 ={{lr2|Administratorzy}}
| komórka 2_1 = Help | komórka 2_2 = {{lp2|Spis treści}}
| komórka 3_1 = Template | komórka 3_2 = {{ls2|Ek}}
| komórka 4_1 = Module | komórka 4_2 = {{ld2|Wikidane}}
| komórka 5_1 = Category | komórka 5_2 = {{lk2|Szablony}}
| komórka 6_1 = Wikijunior | komórka 6_2 = {{lj2|Strona główna}}
| komórka 7_1 = Portal | komórka 7_2 = {{lpt2|Matematyka}}
| komórka 8_1 = Wikiproject | komórka 8_2 = {{lpw2|Matematyka}}
| komórka 9_1 = Special | komórka 9_2 ={{lc2|Strony specjalne}}
}}
Nazwy projektowe, inne niż o nazwach kanonicznych: {{Np|Project|link=tak|nazwij projektem=tak|kanoniczna=tak}} i {{Np|Wikijunior|link=tak|kanoniczna=tak}}, są tłumaczone względem polskiej {{NS|l=w|k=w|pk=d}}, a pozostałe, względem polskiego {{NS|l=tak}}.
Tłumaczymy nazwy kanoniczne na niekanoniczne, specyficzne dla danego projektu. Można też tłumaczyć nazwy niekanoniczne z jednego języka na drugi, ale względem nazw kanonicznych.
Do tłumaczenia nazw wykorzystujemy szablon {{s|NpDane}} (a nie {{s|Np}}).
== Spis treści funkcji nazw ==
Oto jest spis treści w czterech częściach (tomach), przedstawiające różne funkcje w bibliotece (module {{lpg|Lua}} w {{lpr|Lua|Scribunto}}):
* {{lr|Moduły/Nazwy/Tom I|Nazwy - Tom I}} - szablony: {{s|Np}}, {{s|NpDane}} i {{s|NS}} oraz użyte do ich definicji funkcje biblioteczne,
* {{lr|Moduły/Nazwy/Tom II|Nazwy - Tom II}} - szablony i procedury, przestrzeni nazw i nazw stron, nawet pełnych,
* {{lr|Moduły/Nazwy/Tom III|Nazwy - Tom III}} - wydzielanie z pełnej nazwy strony pewnych elementów, i liczenie różnych nazw z połączonych z mniejszych składowych,
* {{lr|Moduły/Nazwy/Tom IV|Nazwy - Tom IV}} - szablony i funkcje: nazw książkowych stron i nazw przestrzeni tworów książkowych, czyli liczenie przy wykorzystywaniu tych konstrukcji, nazw sub-, ale: książki i też strony, także nazwy stron korzeni (podstaw strony), nawet pełnych.
Te części opisują różne funkcje wraz z parametrami, z przykładowymi użyciami w ich odpowiednikach szablonowych, które dodatkowo, w przeciwieństwie do funkcji bibliotecznych, mają walidacje błędów.
== Parametry zmiennych ==
Tu są przedstawiane różne parametry, w różnych modułach:
* {{lru|Moduły/Nazwy/Np}} - zmiennych jakikolwiek przestrzeni nazw w wersji kanonicznej i nie.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j9jfj4nedsyifeyrfbwk4eemklm5joo
Wikibooks:Moduły/Ramka
4
63231
553226
542616
2026-08-25T03:59:11Z
Persino
2851
/* {{Code|p.PowtarzajOdDo}} */
553226
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, na przykładzie w kodzie derektywy: {{Code|__!__}}.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mmyp1xk64ezzyqi0ev1e9r80hkf81xj
553227
553226
2026-08-25T04:19:33Z
Persino
2851
/* {{Code|p.InstrukcjeWarunkowe}} */
553227
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikkodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2w22hxz5i1rgo7ebdllkhprfrqkoe8m
553228
553227
2026-08-25T04:20:32Z
Persino
2851
/* {{Code|p.InstrukcjeWarunkowe}} */
553228
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikkodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
iexir6yfzwhiz37vfly8isyi1gs9kx0
553229
553228
2026-08-25T04:26:03Z
Persino
2851
/* {{Code|p.InstrukcjeWarunkowe}} */
553229
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8tt0px7t1p5aj1n9h1jo2b6bbn4b90u
553259
553229
2026-08-25T07:44:26Z
Persino
2851
/* {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} */
553259
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu o pewnej podstawie tego numerowanego schemacie "<zmienna>(%d*)".
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie tego numerowanego, o schemacie: '''<zmienna>(%d*)''', ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rrqur78g5abr5ba45lyz9dsabaf9icg
553260
553259
2026-08-25T07:45:29Z
Persino
2851
/* {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} */
553260
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie tego numerowanego, o schemacie: '''<zmienna>(%d*)'''.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie tego numerowanego, o schemacie: '''<zmienna>(%d*)''', ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o95eameql4zlx4jpdva8t1fwkyw3bzx
553261
553260
2026-08-25T07:46:56Z
Persino
2851
/* {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} */
553261
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie tego numerowanego, o schemacie: '''<zmienna>(%d*)'''.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: '''<zmienna>(%d*)''', ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gmlxhpg03pjrlioolkfslzmg1f6l4np
553262
553261
2026-08-25T07:47:19Z
Persino
2851
/* {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} */
553262
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: '''<zmienna>(%d*)'''.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: '''<zmienna>(%d*)''', ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ovtqhop061imw7a1eff8jwaiwt22siw
553263
553262
2026-08-25T07:48:21Z
Persino
2851
/* {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} */
553263
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: '''<zmienna>(%d*)'''.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
owc431j3ryh0j8d9ue0g85xq4o5o8ef
553264
553263
2026-08-25T07:48:54Z
Persino
2851
/* {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} */
553264
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== {{Code|p.Szablon}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p["Moduł"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Q}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
=== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ===
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
== {{Code|p.N}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ===
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
== {{Code|p.A}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== {{Code|p.Powtarzaj}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
== {{Code|p.PowtarzajOdDo}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
== {{Code|p["PrzetwarzajIterującCiąg"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
== {{Code|p["PowtarzajWedług"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
=== Przykład przy pomocy szablonu z definicją z tą funkcją ===
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0yjqjb7gxwd3bvzfhn8ez43jlg45rk6
553265
553264
2026-08-25T07:53:03Z
Persino
2851
553265
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== {{Code|p.RozpakujArgumenty}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
== {{Code|p.PakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p.RozpakujParametry}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== Funkcje ramki tablicy transportu ==
=== {{Code|p.Szablon}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p["Moduł"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== Funkcje książkowe ==
=== {{Code|p.Q}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ====
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
=== {{Code|p.N}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ====
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
=== {{Code|p.A}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== Funkcje powtarzania ==
=== {{Code|p.Powtarzaj}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
=== {{Code|p.PowtarzajOdDo}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
=== {{Code|p["PrzetwarzajIterującCiąg"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
=== {{Code|p["PowtarzajWedług"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== Parametry niedopowiednikowych zmiennych ==
=== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
=== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
rfoecqm8fn8vgnul48zud3tgczxhkdq
553266
553265
2026-08-25T07:54:26Z
Persino
2851
553266
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== Funkcje parametrów i argumentów ==
=== {{Code|p.RozpakujArgumenty}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
=== {{Code|p.PakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
=== {{Code|p.RozpakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== Funkcje ramki tablicy transportu ==
=== {{Code|p.Szablon}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p["Moduł"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== Funkcje książkowe ==
=== {{Code|p.Q}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ====
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
=== {{Code|p.N}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ====
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
=== {{Code|p.A}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
=== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ===
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== Funkcje powtarzania ==
=== {{Code|p.Powtarzaj}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
=== {{Code|p.PowtarzajOdDo}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
=== {{Code|p["PrzetwarzajIterującCiąg"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
=== {{Code|p["PowtarzajWedług"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== Parametry niedopowiednikowych zmiennych ==
=== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
=== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3i5hqsan8xdwhxgmil0qgl1cpq3itzc
553267
553266
2026-08-25T07:55:10Z
Persino
2851
/* Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} */
553267
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== Funkcje parametrów i argumentów ==
=== {{Code|p.RozpakujArgumenty}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
=== {{Code|p.PakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
=== {{Code|p.RozpakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== Funkcje ramki tablicy transportu ==
=== {{Code|p.Szablon}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p["Moduł"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== {{Code|p.Parser}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== Funkcje książkowe ==
=== {{Code|p.Q}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ====
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
=== {{Code|p.N}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ====
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
=== {{Code|p.A}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ====
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== Funkcje powtarzania ==
=== {{Code|p.Powtarzaj}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
=== {{Code|p.PowtarzajOdDo}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
=== {{Code|p["PrzetwarzajIterującCiąg"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
=== {{Code|p["PowtarzajWedług"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== Parametry niedopowiednikowych zmiennych ==
=== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
=== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
be51zn8a236qjk00m6o0w6447mh2uhf
553268
553267
2026-08-25T07:55:43Z
Persino
2851
/* {{Code|p.Parser}} */
553268
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== {{Code|ParserBlokowy}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
== {{Code|BudowaSzereguZDanych}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== Funkcje parametrów i argumentów ==
=== {{Code|p.RozpakujArgumenty}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
=== {{Code|p.PakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
=== {{Code|p.RozpakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== Funkcje ramki tablicy transportu ==
=== {{Code|p.Szablon}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p["Moduł"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p.Parser}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== Funkcje książkowe ==
=== {{Code|p.Q}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ====
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
=== {{Code|p.N}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ====
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
=== {{Code|p.A}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ====
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== Funkcje powtarzania ==
=== {{Code|p.Powtarzaj}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
=== {{Code|p.PowtarzajOdDo}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
=== {{Code|p["PrzetwarzajIterującCiąg"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
=== {{Code|p["PowtarzajWedług"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== Parametry niedopowiednikowych zmiennych ==
=== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
=== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
61quk96t4z8nzw5msn1yaq0g0q6oe2x
553269
553268
2026-08-25T07:56:50Z
Persino
2851
553269
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Ramka}}|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 ramka_modul=require("Module:Ramka");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
== Funcje lokalne modułu ==
=== {{Code|ParserBlokowy}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ParserBlokowy(frame, co_ma_wywolac)...end;
</syntaxhighlight>
Funkcja przyjmuje tablicę ramki tablicy transportu funkcji i drugi parametr, który mówi, czy ma uwzględniać dany szablon, jeżeli {{Tt|0}}, funkcję modułu, jeżeli {{Tt|1}}, i funkcję parsera, jeżeli: {{Tt|2}}, a {{Tt|3}} i dalej, to już dany szablon.
Tablica ramki może przyjmować ze strony ramki dziecka szablonu, jak i parametry rodzica szablonu, te ramki są:
* Funkcja przyjmuje parametry podstawowe, które piszemy w postaci:
** {{Code|Nazwa}} - jest to nazwa szablonu, modułu, czy parsera,
** {{Code|bez argumentów rodzica}} - tablica parametrów oddzielonych średnikami, których szablon nie przyjmuje,nawet jeżeli one są,
** {{Code|nazwa szablonu rodzica}} - jest to zmienna przechowująca nazwę szablonu rodzica ramki dziecka,
** {{Code|bez argumentów nienazwanych rodzica}} - szablon w ramce nie przyjmuje parametrów nienazwanych podanych w rodzicu ramki,
** {{Code|potomek}} - zmienna mówiąca, że to jest potomek rodzica ramki, jeżeli nie jest podany parametr {{Code|nie potomek}} - dodane przez tę funkcję,
** {{Code|nie potomek}} - zmienna mówiąca, że to nie jest potomek szablonu,
** {{Code|bez argumentów szablonu}} - zmienna oddzielonych średnikami parametrów, których nie wolno uwzględniać w walidacji błędów w {{m|Sprawdź|Parametry}},
** {{Code|bez dodatkowych sprawdzeń}} - nie jest uruchamiana walidacja parametrów szablonu rodzica,
** {{Code|parametry rodzica}} - zmienna przedstawiająca parametry rodzica przekazane do ramki: {{m|Sprawdź|Parametry}} - dodane przez tę funkcję,
** {{Code|zmienna z parametrami rodzica}} - parametr mówiący, czy ma tworzyć zmienne z parametrami rodzica, a jeżeli nie jest on, z zadnych z jego potomków podany, to zmienna ta z parametrami jest przekazywana na kolejnego przodka,
** {{Code|zmienna z argumentami ramki}} - zmienna mówiąca, czy mają być tworzone parametry ramki,które nie są walidowane przez walidację błędów w {{m|Sprawdź|Parametry}}, wtedy te parametry rodzica nie mogą być podane, przy pomocy tej zmiennej zmienne z: {{Code|bez argumentów szablonu}} są łączone z parametrami ramki,
** {{Code|zmienna z nazwą szablonu rodzica}} - parametr, czy ma tworzyć zmienną: {{Code|nazwa szablonu rodzica}},
** {{Code|parametry funkcji modułu pudełek}} - czy do funkcji mają wchodzić niepodstawowe nienazwane parametry modułu pudełek, a nie inne zmienne,
** {{Code|parametry podstawowe funkcji modułu pudełek}} - czy do funkcji mają wchodzić podstawowe parametry funkcji modułu pudełek, a nie inne zmienne,
** {{Code|usuń z parametrów ramki}} - parametr przedstawiający zmienne oddzielone średnikami, których parametrów ramki ma nie uwzględniać.
* {{Code|Funkcja}} - nazwa funkcji w module, który ma wywołać, w przypadku, gdy parametr funkcji {{sr|#ParserBlokowy()|p=Ramka}} ma wartość {{Tt|1}}, czyli wywołujemy funkcję {{sr|#p["Moduł"]()|p=Ramka}}.
Funkcja uruchamia szablon z parametrami rodzica ramki bez parametrów opisanych zmienną: {{Code|bez argumentów szablonu}}, i bez parametrów ramki minus zmienne opisane przez: {{Code|usuń z parametrów ramki}} dla wartości {{Tt|0}}, funkcję modułu ramki dla wartości {{Tt|1}}, funkcję parsera dla {{Tt|2}}, i {{Tt|3}} i dalej funkcję szablonu.
Za pomocą tej funkcji możemy wielopoziomowo wywoływać funkcje przekazując parametry od najwyższego poziomu do najniższego.
Ta funkcję jako do budowy szablonów, definiując też w jednym miejscu walidację błędów, dla przykładu wykorzystano ją w: {{s|Wzór}}, {{s|Wzór2}}, {{s|CentrujWzór}},{{s|CentrujWzór2}}, i inne, czyli uruchamianie szablonów, a uruchamianie funkcji modułu, w tym funkcji {{m|Cytuj|custom}} w szablonie {{s|PrzypisStrona}}.
Przykładem wywołania szablonu jest, która jest w szablonie: {{s|Wzór}}, w którym jest wywoływany inny szablon, tym razem silnik tego szablonu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Szablon|Nazwa=Wzór/silnik|pozycja numeracji=po prawej|wyrównanie={{{wyrównanie|lewy}}}|bez argumentów szablonu=pozycja numeracji|zmienna z parametrami rodzica=tak}}
</syntaxhighlight>
A przykład wywołania funkcji modułu, która jest w: {{s|PrzypisStrona}}, w którym jest wywoływany funkcja modułu {{m|Cytuj|custom}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Moduł|Nazwa=Cytuj|Funkcja=custom
| url = {{{adres}}}/{{{1|{{{podstrona}}}}}}
| tytuł = {{{2|{{{nazwa}}}}}}
| praca = {{lz
| s = {{Jeśli niepuste|{{{serwis|}}}|{{Dopasuj|ciąg={{{adres}}}|wzór=^(%a+:%/%/[^%/]+)}}}}
| n = {{Dopasuj|ciąg={{Jeśli niepuste|{{{serwis|}}}|{{{adres}}}}}|wzór=^%a+:%/%/([^%/]+)}}
}}
| data = {{#if:{{{data|}}}|{{Czas|Y-m-j|{{{data}}}}}}}
| data dostępu = {{Czas|j.m.Y|{{{data dostępu|}}}}}
}}
</syntaxhighlight>
=== {{Code|BudowaSzereguZDanych}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}} tylko w module {{Code|{{ld2|Ramka}}}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)...end;
</syntaxhighlight>
Funkcja posiada następujące parametry podane w tablicy ramki dla funkcji zwracanej tablicy transportu:
* {{Code|akapit}} - jeśli niepusta, to ona definiuje akapit ze znaków: {{Code|\n\n}},
* {{Code|przecinek}}- drukuje przecinek, jeśli posiada wartość niepustą, ten przecinek jest w postaci: {{Code|", "}}, został on specjalnie objęty w cudzysłowy, aby zilustrować, że po przzecinku znajduje się spacja,
* {{Code|nowa linia}} - w przeciwieństwo do {{Code|akapit}}, pisze jedną nową linię, a nie dwie, jako: {{Code|\n}},
* {{Code|wyliczanka}} - wylicza elementy z przecinkami, stawiając przed ostatnim elementem zamiast jego wyraz wyliczania {{Code|i}},
* {{Code|początek}} - mówi, że na początku musi znajdować się przecinek,
* {{Code|myślnik}} - mówi, że jeśli nie ma początku przecinka, to stawiany jest myślnik, używany zamiast {{Code|poczatek}},
* {{Code|warunkowe}} - instrukcje wikikodu niezawierające we wnętrzu klamerek zostaną rozwinięte,
** {{Code|parametr}} - mówi w derektywach, jeśli niepusty, że derektywy muszą przyjmować wartość w postaci pseudoszablonów, w przeciwnym wypadku jego odpowiednika znaku,
** Funkcja w tym warunku zwraca ciąg znaków rozwiniętego warunku.
Funkcja posiada też mikroszablony:
* {{Code|<nowiki>{{min}}</nowiki>}} - minimalna wartość szeregu zmiennych,
* {{Code|<nowiki>{{max}}</nowiki>}} - a tutaj ich maksymalna.
Te dwie zmienne są podstawiane do uzyskanego ciągu.
Uzyskany tekst jest łączony za pomocą akapitu,a jak nie, to nowych linii, w przeciwnym wypadku jest łączony ciągiem pustym.
Deklaracja, a zarazem definicja funkcji wygląda następująco:
<syntaxhighlight lang="lua">
local function BudowaSzereguZDanych(frame,tab_lancuch,minimum,maksimum)
...
end;
</syntaxhighlight>
* {{Code|frame}} - tablica ramki w tablica transportu funkcji {{lpg|Lua}} w {{lpr|Lua|Scribunto}},
* {{Code|tab_lancuch}} - jest to tablica uzyskanych z innych funkcji wikikodów w tym module,
* {{Code|minimum}} - jak powyżej: {{Code|<nowiki>{{min}}</nowiki>}},
* {{Code|maksimum}} - jak powyżej: {{Code|<nowiki>{{max}}</nowiki>}}.
Funkcja zwraca rozwinięty, co do instrukcji warunkowych bez wewnętrznych klamerek, połączonych podanych łańcuchów odpowiednio w postaci tablicy, do odpowiedniego szeregu, pod którym jest ukryty wikikod.
== {{Code|p.InstrukcjeWarunkowe}} ==
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
{{Tabela|klasa=wikitable tekst-centruj-td|pozycja=prawo|liczba wierszy=12|liczba kolumn=3
| nagłówek 1 = Derektywa | nagłówek 2 = Odpowiednik znakowych | nagłówek 3 = Pseudoszablon
| komórka 1_1 = __!__ | komórka 1_2 = | | komórka 1_3 = {{s|!}}
| komórka 2_1 = __!!__ | komórka 2_2 = || | komórka 2_3 = {{s|!!}}
| komórka 3_1 = __(__ | komórka 3_2 = { | komórka 3_3 = {{s|(}}
| komórka 4_1 = __((__ | komórka 4_2 = {{ | komórka 4_3 = {{s|((}}
| komórka 5_1 = __(((__ | komórka 5_2 = {{{ | komórka 5_3 = {{s|(((}}
| komórka 6_1 = __)__ | komórka 6_2 = } | komórka 6_3 = {{s|)}}
| komórka 7_1 = __))__ | komórka 7_2 = }} | komórka 7_3 = {{s|))}}
| komórka 8_1 = __)))__ | komórka 8_2 = }}} | komórka 8_3 = {{s|)))}}
| komórka 9_1 = __!(__ | komórka 9_2 = [ | komórka 9_3 = {{s|!(}}
| komórka 10_1 = __!((__ | komórka 10_2 = [[ | komórka 10_3 = {{s|!((}}
| komórka 11_1 = __)!__ | komórka 11_2 = ] | komórka 11_3 = {{s|)!}}
| komórka 12_1 = __))!__ | komórka 12_2 = ]] | komórka 12_3 = {{s|))!}}
}}
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.InstrukcjeWarunkowe = function(ciag,derektywy_specjalne,derektywy_parametrowe)...end;
</syntaxhighlight>
* {{Code|ciag}} - podany ciąg do rozwinięcia z instrukcji warunkowych wewnątrz nie posiadający klamerek,
* {{Code|derektywy_specjalne}} - używa do zastępowania specjalnych derektyw, podane po prawej stronie w ramce pływającej,
* {{Code|derektywy_parametrowe}} - czy używać pseudoszablonów zamiast ich odpowiedników znakowych.
Obsługiwane instrukcje warunkowe: {{Code|{{s|#if:[^{}]*}}}}, {{Code|{{s|#ifeq:[^{}]*}}}}, {{Code|{{s|#switch:[^{}]*}}}}, {{Code|{{s|#ifexpr:[^{}]*}}}}, {{Code|{{s|#expr:[^{}]*}}}}, {{Code|{{s|#iferror:[^{}]*}}}} i {{Code|{{s|#iferror:[^{}]*}}}}.
Ta funkcja jest używana przez funkcję: {{Code|{{sr|#BudowaSzereguZDanych()|p=Ramka}}}}, poprzez funkcję: {{Code|{{sr|#p.Powtarzaj()|p=Ramka}}}}.
Przykłady użycia pośrednio przez tą ostatnią funkcję: ona jest użyta w walidacji błędów {{m|Sprawdź|Parametry}} poprzez: {{m|Ramka|Powtarzaj|...|warunkowe{{=}}tak|...}}, uruchamianą przez: {{m|Ramka|Rozwiń|...}}, na przykładzie w kodzie derektywy:
; Gdzie jest pokazane w wikikodzie definiujących szablony{{dk}}
* {{Code|__!__}} - w: {{s|Kategorie}}, ponieważ ten szablon generuje, dla tego coś w rodzaju {{s|!}}, jest wtedy nie w sposób odróźnić tego od innego tego samego elementu w instrukcjach warunkowych, czyli bezpośrednio wstawienie tego do wikikodu, normalnie powoduje to błędne działanie jego generatora, dlatego trzeba użyć właśnie to.
== Funkcje parametrów i argumentów ==
=== {{Code|p.RozpakujArgumenty}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujArgumenty = function(zmienna_z_argumentami)...end;
</syntaxhighlight>
Funkcja przyjmuje jeden parametr ze zmiennymi oddzielonych średnikami, je rozpakowuje wyjmując z pól pomiędzy średnikami zmienne, i układa je w tablicy, która jest zwaracana jako parametr, te parametry mogą mięć mikroszablony, które sa zastępowane odpowiednikami znakowymi. Jedynym tego przykładem jest mikrofunkcja {{Code|<nowiki>{{+}}</nowiki>}}, ktora jest zamieniana na średnik.
=== {{Code|p.PakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja pakuje parametry tablicy {{lpg|Lua}} do tablicy: {{Code|JSON}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji:
<syntaxhighlight lang="lua">
p.PakujParametry = function(args)
return mw.text.jsonEncode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry jakby nienazwane w tablicy {{Code|JSON}} (tutaj numerowanie jest od zera) z tablicy {{lpg|Lua}} (tutaj od jedynki), do tablicy nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
=== {{Code|p.RozpakujParametry}} ===
Funkcje się uruchamia w zwykłej funkcji w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.
Funkcja rozpakowuje parametry z tablicy: {{Code|JSON}}, do tablicy {{lpg|Lua}}, przy pomocy funkcji, którego wynik jest zwracany do tej funkcji.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.RozpakujParametry = function (zmienna_z_parametrami)
return mw.text.jsonDecode(args,mw.text.JSON_PRESERVE_KEYS);
end;
</syntaxhighlight>
Ten szablon nazywa parametry nienazwane w tablicy {{lpg|Lua}} (tutaj od jedynki) z tablicy {{Code|JSON}} (tutaj numerowanie jest od zera), do tablicy nienazwanej z nazwanej, jak to robi się w {{Lpr|Lua|Scribunto}}.
== {{Code|p["Rozwiń"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)...end;
</syntaxhighlight>
Szablon rozwija wikikod podany w zmiennej {{Code|1}}.
* Szablon jest użyty w szablonie: {{s|Wybrane grupy książek}}, która generuje układ wielokolumnowy układ bloków ramkowych przy pomocy funkcji: {{s|Blok ramkowy}} i {{s|Blok ramkowy/Zamknij}},
* Szablon również jest użyty w szablonach: {{s|Osobny artykuł/silnik}}, {{s|Kategoria główna/silnik}}, {{s|Spójrz też/silnik}}, itd..
Przykład wywołania funkcji:
* {{Code|{{m|Ramka|Rozwiń|1{{=}}<wikikod>}}}} - funkcja rozwija podany wikikod podany w zmiennej {{Code|1}}.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p["Rozwiń"] = function(frame)
return frame:getParent():preprocess(frame.args[1]);
end;
</syntaxhighlight>
== {{Code|p.Log}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Log = function(frame)...end;
</syntaxhighlight>
Szablon wysyła logi do konsoli {{Code|MediaWiki}} w postaci tekstu: ukryty pod zmienna: {{Code|log}}, i ewentualnie zwraca ten tekst, jeżeli zmienna: {{Code|wikitext}}, przyjmuje wartość niepustą, lub jest niepodana.
Przykłady użycia funkcji:
* {{Code|{{m|Ramka|Log|log{{=}}<tekst>|wikitext{{=}}tak}}}}- tutaj funkcja (ramka) wysyła do konsoli tekst ukryty pod zmienną: {{Parametr|log|<tekst>}}, i jednocześnie zwraca jej wartość.
Kod tej funkcji bibliotecznej w tym module, tzn.: {{Ld2|Ramka}}, jest:
<syntaxhighlight lang="lua">
p.Log = function(frame)
local parametry_modul=require("Module:Parametry");
local czy_zwracac=parametry_modul.CzyTak(frame.args["wikitext"]);
local wikitekst=frame.args["log"];
mw.log(wikitekst);
return (czy_zwracac and wikitekst or "");
end;
</syntaxhighlight>
== Funkcje ramki tablicy transportu ==
=== {{Code|p.Szablon}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|0}} symbolizującego rozwijanie szablonu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Szablon = function(frame)
return ParserBlokowy(frame,0);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p["Moduł"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|1}} symbolizującego rozwijanie funkcji modułu ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Moduł"] = function(frame)
return ParserBlokowy(frame,1);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
=== {{Code|p.Parser}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Funkcja wywołuje inną funkcję, ale lokalną w postaci zwracanej wartości dla drugiego parametru zerowego {{Code|2}} symbolizującego rozwijanie funkcji parsera.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Parser = function(frame)
return ParserBlokowy(frame,2);
end;
</syntaxhighlight>
Szablon przyjmuje te same parametry tablicy ramki {{Code|frame}}, co: {{Code|ParserBlokowy}}.
== Funkcje książkowe ==
=== {{Code|p.Q}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Q =function(frame)...end;
</syntaxhighlight>
Szablon {{s|Q}} przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii. Szablon {{s|T}} podobnie jak poprzedni szablon, tylko dodatkowo dopuszcza parametry szablonu, którego uruchamia z nimi szablon (funkcja) o nazwie uzyskanej z funkcji {{m|Ramka|N}}.
Szablon {{s|Q}} parametry nienazwane większe od jeden, ale nie pierwszy parametr, jego numer zmniejsza o jeden, a inne pozostawia je w takiej formie, jakim są (nie pierwszy, który nie jest wliczany do parametrów szablonu). W ten sposób wywołujemy szablon podany jako pierwszy parametr tego szablonu z tymi tak uzyskanymi parametrami.
==== Przykłady użycia funkcji {{s|Ramka|Q}}, a zarazem szablonu {{s|Q}} ====
* {{Code|{{s|Q|Unicode-c|wstecz{{=}}13|dalej{{=}}15}}}} →
{{OverflowWiersz|{{T|Unicode-c|wstecz=13|dalej=15}}}}
=== {{Code|p.N}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.N=function(frame)...end;
</syntaxhighlight>
Szablon {{s|N}}, a zarazem funkcja {{s|Ramka|N}} ze strony parametrów ramki, przyjmuje tylko jeden parametr {{Parametr|1}}, którą jest nazwa niepełna szablonu, modułu, czy kategorii.
Szablon {{Code|{{s|N|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}|n{{=}}tak}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, tzn. {{Parametr|p|0}} lub niepodana, oznacza przestrzeń szablonu, {{Parametr|p|1}} przestrzeń modułu i {{Parametr|p|2}} przestrzeń kategorii.
* {{Code|n}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykłady użycia funkcji {{m|Ramka|N}} i szablonu {{s|N}} ====
* {{Code|{{s|N|Unicode-c}}}} → {{Code|{{N|Unicode-c}}}}, {{Code|{{s|N|Unicode-c|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|n=tak}}}}
* {{Code|{{s|N|Unicode-c|p{{=}}0}}}} → {{Code|{{N|Unicode-c|p=0}}}}, {{Code|{{s|N|Unicode-c|p{{=}}0|n{{=}}tak}}}} → {{Code|{{N|Unicode-c|p=0|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1}}}}, {{Code|{{s|N|Zbiór zadań maturalnych|p{{=}}1|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych|p=1|n=tak}}}}
* {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2}}}}, {{Code|{{s|N|Zbiór zadań maturalnych/Szablony|p{{=}}2|n{{=}}tak}}}} → {{Code|{{N|Zbiór zadań maturalnych/Szablony|p=2|n=tak}}}}
=== {{Code|p.A}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.A=function(frame)...end;
</syntaxhighlight>
Szablon {{s|A}}, a zarazem funkcja: {{m|Ramka|A}}, z nazwy szablony (bez przestrzeni nazw) usuwa przedrostek {{Code|Książka:}}.
Szablon {{Code|{{s|Q|<nazwa strony>|p{{=}}{{!(}}0{{!}}1{{!}}2{{)!}}}}}} przyjmuje parametry oznaczające:
* {{Code|p}}, gdy pusta lub niepodana oznacza pełną nazwę strony, a gdy jest niepusta, tylko nazwę strony.
==== Przykład wykorzystania szablonu {{s|A}}, a zarazem funkcji funkcji {{m|Ramka|A}} ====
* {{Code|{{s|A|{{N|Unicode-c|n=tak}}}}}} → {{Code|{{A|{{N|Unicode-c|n=tak}}}}}}, {{Code|{{s|A|{{N|Unicode-c}}|p{{=}}tak}}}} → {{Code|{{A|{{N|Unicode-c}}|p=tak}}}}
== Funkcje powtarzania ==
=== {{Code|p.Powtarzaj}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.Powtarzaj = function(frame)...end;
</syntaxhighlight>
Funkcja może przyjmować tylko parametry nienazwane, tylko nazwane, lub nienazwane i nazwane.
Funkcja jako podany parametr pierwszy:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|Powtarzaj|1=<wikikod>}}
</syntaxhighlight>
iteruje po podanych parametrach, jako parametry szablonu w zależności od parametrów ramki, zastępując pewne wielkości. Te wielkości to:
* {{Code|{{((}}_{{))}}}} (w nawiasach klamrowych podwójnych jest jeden dolny myślnik) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} lub {{Code|1}},
* {{Code|{{((}}__{{))}}}} (w nawiasach klamrowych podwójnych są dwa dolne myślniki) - parametr numerowany przyjmujący wartość numerowaną od więcej od {{Code|1}} albo {{Code|1}} lub ciąg pusty (wtedy tutaj dla jedynki, jeżeli zmienna: {{Code|<zmienna> 1}} lub {{Code|<zmienna>1}}, istnieje, a teraz dla ciągu pustego, jeżeli zmienna {{Code|<zmienna>}} istnieje), one są podane w zmiennych parametrach szablonach, jeżeli w nich wywołana jest ta ramka wywołującą tę funkcję.
Parametrem określającym, że brane są pod lupę parametry nazwane i nienazwane, jest zmienna {{Code|różne}}, która wtedy ma wskazywać na wartość niepustą.
Najważniejsze parametry, które są to opcjonalne, to są:
* {{Code|start}} - liczba, która wskazuje początek liczenia - domyślna wartość to {{Code|1}},
* {{Code|koniec}} - liczba, która wskazuje koniec liczenia.
Elementy w {{Code|parametry}} mogą modyfikować odpowiednio te parametry podane zaraz powyżej, ale najpierw parametr wskazujący koniec liczenia musi być policzony w pierwszej fazie, a jeżeli nie ma parametrów nazwanych, wtedy liczy się maksimum numeracyjne parametrów numerowanych, a jeżeli są nazwane, a jeżeli {{Code|różne}} nie jest niepuste, to się liczy maksimum parametrów nazwanych, a w przeciwnym wypadku mamy w zależności od parametru: {{Code|maksimum numeracyjne}}, jeżeli niepusty, to liczy się maksimum numeracyjne, w przeciwnie maksimum z maksimum numeracyjnego i parametrów nazwanych (który zależy od parametru przesunięcia dla danego parametru i parametrów ogólnie, wspólny dla wszystkich parametrów - wyjaśnienie poniżej).
To maksimum parametrów nazwanych, dla jakieś podstawy parametrów, jest pomijane, gdy {{Code|dodatkowe}}, która jest zestawem podstaw parametrów oddzielonych średnikami, jest właśnie podany ten parametr w nim. Przykładem jego jest:
{{Pre|{{Parametr|dodatkowe|<zmienna 1>;<zmienna 2>;<zmienna 3>}}}}
Gdzie zamiast zmiennych {{Code|<zmienna 1>,...}} są pewne nazwy baz parametrów nazwowych bez numerka na samym końcu i ewentualnie spacji.
Funkcja przyjmuje ważny parametr {{Code|parametry}} dla parametrów specjalnie nazwanych. Elementy w nim są oddzielone średnikami dla każdej zmiennej z osobna, a dla danej zmiennej zmienne są przedzielone przecinkami.
Na początku tego jest opcjonalny element naturalny wspólny dla wszystkich zmiennych oddzielonych od pozostałych elementów średnikiem, jeżeli istnieją.
Nie licząc wspólnego elementu dla wszystkich parametrów, to dla danej zmiennej liczba maksymalna elementów podanych po kolei jest {{Code|5}}.
Dla danej zmiennej elementy oddzielone przecinkami piszemy w formie:
* element pierwszy, to jest parametr, jeżeli niepusty, określający, że pomiędzy podstawą elementu, a liczbą, ma być zero spacji,
* element drugi, to jest parametr, jeżeli niepusty, określający, że dla pierwszego elementu ma pisać jedynkę zamiast jedynki lub wartości pustej w zależności od istnienia takiej pierwszej zmiennej,
* element trzeci, to jest parametr, jest to liczba przesunięcia, od której ma liczyć parametr nazwany,
* element czwarty, to jest parametr określający, od jakiej liczby ma zaczynać na początku od dodatniego wskaźnika (zmiennej), brana jest liczba minimalna dodatnia, ze wszystkich takich liczb, uwzględniając element, od którego startuje liczenie,
* element piąty, to jest parametr określający, do jakiej liczby ma kończyć iterację dla danego wskaźnika (zmiennej), jako koniec liczenia brana jest liczba maksymalna dodatnia, ze wszystkich takich liczb, uwzględniając na początku policzony powyżej koniec liczenia.
Przykładem tego parametru dla danej zmiennej jest: {{Code|tak,tak,5,3,4}}, a z dodatkiem globalnego przesunięcia dla wszystkich zmiennych: {{Parametr|parametry|5;<zmienna>{{=}}tak,tak,5,3,4}}, a dla wielu zmiennych:
{{Pre|{{Parametr|parametry|5;<zmienna 1>{{=}}tak,tak,5,3,4;<zmienna 2>{{=}}tak,,10,7,9;<zmienna 3>{{=}},tak,8,9,11}}}}
Zamiast wartości: {{Code|zmienna 1>}}, {{Code|<zmienna 2>}} i {{Code|<zmienna 3>}}, są pewne nazwy bazowe parametrów bez numerka na jej końcu. W zmiennej {{Code|parametry}} można nie podawać dalsze elementy po przecinku, jeżeli są puste lub nieważne (nic nie zmieniają) lub można nie podać nic po znaku {{Code|{{=}}}} (a w tym przypadku nawet można nie podawać tego znaku) dla danego problemu funkcji.
Parametrem {{Parametr|1|<wikikod>}},którego wartość, jest wikikodem do iteracji, gdy ten parametr nie jest podany, to funkcja zwraca wartość {{Code|(brak parametru do analizy)}}, a gdy ten parametr jednak jest podany, ale jest ciągiem pustym, wtedy wartość zwracana jest {{Code|(parametr do analizy pusty)}}.
Gdy parametr {{Code|tonumber(frame.args["start"]) or 1}}, jest równy zero, funkcja zwraca błąd: {{Code|(początek jest ustawiony na zero)}}.
A jeżeli zatem żaden parametr nie jest podany, to można użyć argumentu {{Code|niepodane}}, która wygeneruje jeden krok, tylko jeden, iteracji.
Gdy {{Code|nic}} przyjmuje wartość, i gdy pomijamy parametr, lub on przyjmuje wartość pustą, wtedy a funkcja nie może generować żadnego kroku iteracji, to wtedy jest zwracana wartość niepusta {{Code|nic}} lub ciąg pusty.
Parametr {{Code|po kolei}} niepusty powoduje, że zbieranie parametrów odbywa się od pewnego miejsca i idzie w sposób ciągły do góry, co jeden, aż do pewnej granicy.
Parametr {{Code|wytnij}} wycina parametry puste i niepodane, a {{Code|wytnij puste}} tylko puste, ale {{Code|nie wytnij nazwane}} nie wycina parametrów nazwanych.
Znacznik {{Code|_i}} określa symbol, jak ona może być używana do zastępowania zmiennych typu {{Code|<nowiki>{{((}}_i{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}_i_i{{))}}</nowiki>}}, wtedy ich się używa zamiast: {{Code|<nowiki>{{((}}_{{))}}</nowiki>}} i {{Code|<nowiki>{{((}}__{{))}}</nowiki>}}.
W wyniku iteracji otrzymamy tablicę ciągów łańcuchów z wiikodami, wtedy ta funkcja używa funkcji:
{{Pre|lancuch_znakow {{=}} BudowaSzereguZDanych(frame,tab_lancuch,minimum or 0,maksimum);}}
wraz z jego parametrami podane w jego ramce {{Code|frame}}, które jednocześnie sa parametrami {{m|Ramka|Powtarzaj}}, używa do łączenia w pewien określony zbiór uporządkowanych ciągów do jednego łańcucha, który jest zwracany bezpośrednio przez tę funkcję bez rozwijania przy parametrze {{Parametr|nie rozwiń|tak}}, a gdy on nie przyjmuje wartości niepustej, w takim razie on jest rozwijany funkcją {{Code|pf:preprocess(lancuch_znakow)}}, i jest zwracany jako wartość omawianej funkcji.
Funkcja jest używana np. w silnikach szablonów, np.: {{s|Osobny artykuł/silnik}} szablonu {{s|Osobny artykuł}}, jak i jego podobnych szablonów, wykorzystujących ten właśnie silnik. Również przykładem jest: {{s|Kategoria główna/silnik}} szablonu {{s|Kategoria główna}} i innych, którego jest on silnikiem. A nawet podobnie jest z: {{s|Spójrz też/silnik}} szablonu {{s|Spójrz też}}. Podobnie się definiuje inny szablon, który drukuje nierozwinięty wikikod ze składników przy pomocy parametrów, który po włączeniu do większego kodu, dopiero wtedy jest rozwijany, przykładem tego jest: {{s|Wybrane grupy książek}}.
=== {{Code|p.PowtarzajOdDo}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.PowtarzajOdDo=function(frame)...end;
</syntaxhighlight>
Funkcja tworzy wikikod do rozwinięcia, np. przez funkcję {{m|Ramka|Rozwiń}}, lub go rozwija na końcu, na podstawie kolejnych kroków iteracji:
* {{Code|start}} - początek iteracji dokonywany przez ta funkcję,
* {{Code|koniec}} - koniec iteracji dokonywany przez ta funkcję,
* {{Code|krok}} - krok iteracji, co którynumer ma iterować,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji.
Przykładowym kodem jest kod, którego wikikod znajduje się szablonie w silniku: {{s|Chem/silnik}}, w tym nadrzędnym: {{s|Chem}}, przykłady jego działania:
* {{Code|{{s|Chem|C|n|H|2n + 2}}}} → {{Tt|{{Chem|C|n|H|2n + 2}}}}
* {{Code|{{s|Chem|H|3|O|+}}}} → {{Tt|{{Chem|H|3|O|+}}}}
* {{Code|{{s|Chem|SO|4|2-}}}} → {{Tt|{{Chem|SO|4|2-}}}}
* {{Code|{{s|Chem|4|He}}}} → {{Tt|{{Chem|4|He}}}}
* {{Code|{{s|Chem|4|2|He}}}} → {{Tt|{{Chem|4|2|He}}}}
Na podstawie tej funkcji dokonano w szablonie {{s|Chem}}, że ona może przyjmować dowolną liczbę parametrów numerowanych.
=== {{Code|p["PrzetwarzajIterującCiąg"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PrzetwarzajIterującCiąg"]=function(frame)...end;
</syntaxhighlight>
Funkcja do iteracji ciągu z wikikodem i pewnymi zmiennymi.
* {{Code|ciąg}} - lista parametrów oddzielonych średnikami, z którego jest tworzona tablica z elementów pomiędzy srednikami,
* {{Code|łącznik}} - szereg łączących elementy z wikikodem, a jak nie ma tego elementu podanego, to czy ma być oddzielony nową linią na podstawie zmiennej {{Code|nowa linia}}, a jeżeli to nawet nie jest podane, to podany ciąg jest łączony poprzez szereg pusty,
* {{Code|nowa linia}} - szereg mówiący, czy ma łączyć szeregi kodem nową linią, jeżeli {{Code|łącznik}} nie jest podany,
* {{Code|przeskok}} - dodatkowy krok, nie licząc jedynki, jak ma iterować ciąg,
** Ta zmienna w każdym kroku iteracji zależna jest od: {{Code|<nowiki>{{_}}</nowiki>}} i {{Code|<nowiki>{{ciąg}}</nowiki>}}, mówiąca o numerze jego kroku,
* {{Code|nie rozwiń}} - niepusta wartość, wtedy kod nie jest rozwijany, jeśli uzyskany kod nie jest rozwijany, w końcowym etapie można go rozwinąć przy pomocy funkcji {{m|Ramka|Rozwiń}},
* {{Code|1}} - aktualny wikikod ze zmiennymi poniżej przedstawiający aktualny krok iteracji, z którego dla każdego elementu te ciągi są łaczone za pomocą łącznika.
Zmienne w kodzie: {{Code|1}} i {{Code|przeskok}} (jeżeli podana), podstawiane w nich pewne zmienne, które zamiast nich pewne liczby coś symbolizujące:
* {{Code|<nowiki>{{start}}</nowiki>}} - przyjmuje wartość {{Tt|1}},
* {{Code|<nowiki>{{koniec}}</nowiki>}} - przyjmuje wartość, który jest liczbą elementów w ciągu oddzielonych średnikami w zmiennej {{Code|ciąg}},
* {{Code|<nowiki>{{krok}}</nowiki>}} - przyjmuje wartość {{Tt|1}}.
Zmienne inne za każdym krokiem iteracji, z których korzystają: {{Code|1}} i {{Code|przeskok}}:
* {{Code|<nowiki>{{_}}</nowiki>}} - symbol, za którą jest podstawiana liczba przyjmująca aktualną wartość numeru iteracji,
* {{Code|<nowiki>{{ciąg}}</nowiki>}} - jest to wartość pojedynczego elementu w {{Code|ciąg}}.
Przykładowym kodem jest kod, którego część znajduje się tutaj, z szablonu {{s|Status}}:
<syntaxhighlight lang="mediawiki">
{{#invoke:Ramka|PrzetwarzajIterującCiąg
| ciąg = {{{junior}}}
| przeskok = 0
| 1 = {{((}}#if:{{((}}ciąg{{))}}
{{!}}{{((}}#invoke:Ramka{{!}}Szablon
{{!}}parametry funkcji modułu pudełek{{=}}tak
{{!}}Nazwa{{=}}Kategoria{{!}}Wikijunior:{{((}}ucfirst:{{((}}ciąg{{))}}{{))}}
{{))}}
{{))}}
}}
</syntaxhighlight>
Wartością w tym przypadku zmiennej szablonowej {{Code|<nowiki>{{{junior}}}</nowiki>}} może być: {{Parametr|junior|Owoce;Warzywa}}. Ta funkcja najpierw iteruje po wartości {{Code|Owoce}}, a później po {{Code|Warzywa}}.
Powyższy kod, uzyskany w ten sposób wikikod, jest rozwijany za pomocą funkcji systemowej {{lpg|Lua}} w {{lpr|Lua|Scribunto}}: {{Code|pf:preprocess(lancuch)}}, jeśli: {{Code|nie rozwiń}}, nie przybiera wartości niepustej.
=== {{Code|p["PowtarzajWedług"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["PowtarzajWedług"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Lista wybranych książek}}, która po wywołaniu wypluwa wynik:
* Szablon wypluwający listę stron według wzoru w postaci tekstu:
** {{Code|{{s|Lista wybranych książek|Polecane książki}}}} → {{Tt|{{Lista wybranych książek|Polecane książki}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca}}}}
* Szablon wypluwający listę stron według wzoru w postaci linków:
** {{Code|{{s|Lista wybranych książek|Polecane książki|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Polecane książki|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Nowe podręczniki miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Nowe podręczniki miesiąca|link=tak}}}}
** {{Code|{{s|Lista wybranych książek|Wyróżnienia książek miesiąca|link{{=}}tak}}}} → {{Tt|{{Lista wybranych książek|Wyróżnienia książek miesiąca|link=tak}}}}
== {{Code|p["LiczbaPrawychUkośników"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["LiczbaPrawychUkośników"] = function(frame)...end;
</syntaxhighlight>
Szablon wyszukuje liczbę prawych ukośników w wielopoziomowym adresie strony.
* {{Code|1}} - wielopoziomowy adres z ewentualnie prawymi ukośnikami.
Jeżeli ten adres nie zawiera tych ukośników, to funkcja zwraca wartość {{Tt|0}}.
=== Przykład użycia ===
* {{Code|{{m|Ramka|LiczbaPrawychUkośników|1{{=}}Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}} → {{Tt|{{#invoke:Ramka|LiczbaPrawychUkośników|1=Podstawia/Poziom_1/Poziom_2/Poziom_3/Poziom_4/Poziom_5}}}}
== {{Code|p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MaksymalnaLiczbaNumerowanychIstniejącychStronWedługWzoru"] = function(frame)...end;
</syntaxhighlight>
Funkcja wyszukuje ile jest stron o danym wzorze, np.dla stron o podstawie „{{Ns:Template}}:Polecane książki/”:{{Parametr|wzór|{{Ns:Template}}:Polecane książki/{{((}}_{{))}}}}.
* {{Code|start}} - od jakiej liczby ma liczyć strony (domyślną wartością jest {{Code|1}}, od której zaczyna się liczenie stron o podany wzorze numeracyjnym),
* {{Code|wzór}} - wzór według tego, co ma sprawdzając, czy one pasują do niego.
Parametr {{Code|wzór}} ma w sobie {{font|color=blue|<nowiki>{{_}}</nowiki>}}, za którą podstawiany jest numer w postaci liczby naturalnej innej niż zero.
=== Przykłady użycia ===
Przykład z tą funkcją znajduje się w kodzie w szablonie: {{s|Liczba list wybranych książek}}, która po wywołaniu wypluwa wynik:
* {{Code|{{s|Liczba list wybranych książek|Polecane książki}}}} → {{Tt|{{Liczba list wybranych książek|Polecane książki}}}}
* {{Code|{{s|Liczba list wybranych książek|Nowe podręczniki miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Nowe podręczniki miesiąca}}}}
* {{Code|{{s|Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}} → {{Tt|{{Liczba list wybranych książek|Wyróżnienia książek miesiąca}}}}
== Parametry niedopowiednikowych zmiennych ==
=== {{Code|p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["MinimalnyNumerSpośródNieodpowiednikowychZmiennych"]=function(frame)...end;
</syntaxhighlight>
Szablon szuka minimalny numer wśród zmiennych szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}.
* {{Code|zmienna}} - podstawa parametru numerowanego liczbami lub ciągiem pustym,
* {{Code|odpowiednik}} - czy ma zaufać jego odpowiednikowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpr|Lua}}. Parametry: zmienna i odpowiednik, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr3{{=}}tak|parametr5{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/MinimalnyNumerSpośródNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr3=tak|parametr5=tak}}}}
=== {{Code|p.IleJestTakichNieodpowiednikowychZmiennych}} ===
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p.IleJestTakichNieodpowiednikowychZmiennych=function(frame)...end;
</syntaxhighlight>
Funkcja szuka wśród parametrów szablonu, o pewnej podstawie, tego numerowanego, o schemacie: {{Code|<zmienna>(%d*)}}, ile jest takich zmiennych, o tych numerkach, w parametrach szablonu.
* {{Code|zmienna}} - podstawa nazwowa parametru numerowanego,
* {{Code|odpowiednik}} - czy ma ufać parametrowi nienazwanemu szablonu.
Szablon przekształca wartość parametru {{Code|zmienna}} do czystego tekstu, względem wyrażeń regularnych {{lpg|Lua}}. Parametry: {{Code|zmienna}} i {{Code|odpowiednik}}, to parametry ramki.
* Popatrz na definicję przykładu - szablonu: {{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych}}.
==== Przykład przy pomocy szablonu z definicją z tą funkcją ====
* {{Code|{{s|Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna{{=}}parametr|odpowiednik{{=}}|parametr1{{=}}tak|parametr2{{=}}tak|subnazwa=tak}}}} → {{Tt|{{Wikibooks/Przykład/IleJestTakichNieodpowiednikowychZmiennych|zmienna=parametr|odpowiednik=|parametr1=tak|parametr2=tak}}}}
== {{Code|p["Parametr w tablicy nazw"]}} ==
Funkcję uruchamia się w ramce jako dziecko w jakimś szablonie rodzicu.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Parametr w tablicy nazw"]=function(frame)...end;
</syntaxhighlight>
Funkcja wywoływana w postaci ramki szuka parametru w tablicy podanych parametrów.
* {{Code|parametry}} - lista parametrów oddzielonych średnikiem,
* {{Code|pozycja}} - szukana lista w tablicy parametrów,
* {{Code|od dużej}} - czy parametr i elementy listy mają być zamieniane od dużej litery.
Funkcja, jeżeli wyszukała w tej tablic parametr (pozycję) zwraca wartość {{Code|tak}}, w przeciwnym wypadku zwraca {{Code|nil}}, wartość języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, która po transformacji na wikikod jest zamieniana na ciąg pusty.
=== Przykłady użycia funkcji ===
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr2}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr2}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}parametr4}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=parametr4}}}}
* {{Code|{{m|Ramka|Parametr w tablicy nazw|parametry{{=}}parametr1;parametr2;parametr3|pozycja{{=}}Parametr2|od dużej{{=}}tak}}}} → {{Tt|{{#invoke:Ramka|Parametr w tablicy nazw|parametry=parametr1;parametr2;parametr3|pozycja=Parametr2|od dużej=tak}}}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lpfaivqfckzwyralp0gfvtb58h82rs3
Wikibooks:Moduły/Sekcja referencyjna
4
63280
553133
552189
2026-08-24T19:18:18Z
Persino
2851
553133
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łówka, 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}}), 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, ale nie na papier.
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, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
Parametry funkcji:
* {{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 od litery, 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>
Parametry 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 ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych 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, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|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 w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jego '''nagłówek''' i '''nazwę linku'''.
== {{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku 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"]|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''' ona może być z nagłówkiem, 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"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
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 niej, 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}},
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{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 te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|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ł z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych,jak w przestrzeni {{Np|Project|link=tak}}.
----
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}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{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>
5cbefbvmadf6a3yam364llkt6uspurt
553135
553133
2026-08-24T19:18:52Z
Persino
2851
/* {{Code|p["Sekcja referencyjna"]}} */
553135
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łówka, 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}}), 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, ale nie na papier.
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, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
Parametry funkcji:
* {{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 od litery, 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>
Parametry 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 ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych 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, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|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 w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jego '''nagłówek''' i '''nazwę linku'''.
== {{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku 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"]|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''' ona może być z nagłówkiem, 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"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
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 niej, 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}},
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałśzywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do oubktu na niej, do identyfikatora jakiegoś elementu.
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{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 te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|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ł z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych,jak w przestrzeni {{Np|Project|link=tak}}.
----
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}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{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>
hhkh94fxrv9tahvnu3z86zqq7g0q6rd
553144
553135
2026-08-24T19:30:20Z
Persino
2851
/* {{Code|p["Sekcja referencyjna"]}} */
553144
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łówka, 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}}), 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, ale nie na papier.
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, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
Parametry funkcji:
* {{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 od litery, 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>
Parametry 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 ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych 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, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|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 w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jego '''nagłówek''' i '''nazwę linku'''.
== {{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku 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"]|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''' ona może być z nagłówkiem, 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"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
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 niej, 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}},
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, a nie do artykułu.
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{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 te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|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ł z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych,jak w przestrzeni {{Np|Project|link=tak}}.
----
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}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{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>
1nwmgosvn2ocophk5zok9k7tasin1hq
553147
553144
2026-08-24T19:33:34Z
Persino
2851
/* {{Code|p["Sekcja referencyjna"]}} */
553147
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łówka, 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}}), 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, ale nie na papier.
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, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
Parametry funkcji:
* {{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 od litery, 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>
Parametry 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 ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych 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, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|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 w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jego '''nagłówek''' i '''nazwę linku'''.
== {{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku 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"]|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''' ona może być z nagłówkiem, 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"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
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 niej, 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}},
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą.
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{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 te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|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ł z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych,jak w przestrzeni {{Np|Project|link=tak}}.
----
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}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{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>
7hqe5y4i81s3fyu8rndc2zlyuoffglb
553149
553147
2026-08-24T19:48:11Z
Persino
2851
/* {{Code|p["Sekcja referencyjna"]}} */
553149
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łówka, 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}}), 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, ale nie na papier.
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, który nie jest adresem {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.Indentyfikator_lub_podstrona_wikiadresu_strony(ustep,czy_ustep)...end;
</syntaxhighlight>
Parametry funkcji:
* {{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 od litery, 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>
Parametry 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 ostatnie parametry nie mogą być nie {{Code|true}}.
W przeciwny wypadku funkcja zwraca samą nieprzekształconą nazwę strony.
== {{Code|p.Strona_zbiorcza}} ==
Funkcja zwraca parametry trzy linku wskazane w stopce tego rozdziału przygotowane specjalne dla stron zbiorczych 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, według zmiennych podanych w parametrach zdefiniowanych jako w punkcie dla funkcji {{Code|{{sr|#p["Sekcja referencyjna"]|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 w: {{Code|{{sr|#p.Indentyfikator_lub_podstrona_wikiadresu_strony|p=Sekcja referencyjna}}}}, która nie zawsze musi modyfikować tej zmiennej.
Funkcja {{Code|{{sr|#p.Nazwa_od_niewielkiej_lub_wielkiej_litery|p=Sekcja referencyjna}}}} ustala odpowiednio zmodyfikowaną nazwę, według zmiennych, które powinny być niesprzeczne, chodzi tu o: {{Code|od_malej}} i {{Code|od_duzej}}, w przeciwnym wypadku lub jeżeli one nie są ustawione, wtedy nazwa linku pozostaje niezmieniona.
Funkcja zwraca trzy parametry jednocześnie, czyli '''nazwę strony''', jego '''nagłówek''' i '''nazwę linku'''.
== {{Code|p.Wolumin}} ==
Funkcja zwraca paraetry linku 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"]|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''' ona może być z nagłówkiem, 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"]}} ==
Szablon stylowy linków inteligentnych, jest on z kodami na stronie {{s|Link wewnętrzny/opis}}, który się mieści pod tabelą wywołania szablonowego {{s|Tabela nawigacyjna}}, a w jego parametrze, tam są też linkujące do tej samej strony, czyli do kaskadowych szablonu arkusza stylów '''CSS''', które są odnadawania barwy linków, mające kolory odpowiednie dla nich, a właściwe wartości kodów znajdują się w znaczniku szablonowym {{s|Span}} obok tych odpowiednich elementów. Funkcja koloruje linki w zależności do jakiej kategorii on należy, wskazanych przez kody, a do tego celu używa {{NS|k=d|l=tak}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["Sekcja referencyjna"]=function(frame)...end;
</syntaxhighlight>
; Parametry podstawowe{{dk}}
: Parametry, które raczej powinny być umieszczone w parametrach szablonu, ale nie muszą być tam w szczególnych przypadkach
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 niej, 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}},
* {{Code|b}}, {{Code|bieżąca}} - jeśli zmienna: {{Code|podstrona}}, lub jego koledzy nie są podane, wtedy adres książki jest liczony względem bieżącej.
; Parametry dodatkowe{{dk}}
* Szablon posiada też parametry: {{Parametr|bez znaczników|tak}} (skrót: {{Parametr|bz}}) i {{Parametr|bez przetwarzania|tak}} (skrót: {{Parametr|bp}}), które kolejno znaczą, że bez obramowania znacznikowego {{Code|span}} kolorujące link, i bez głębszego, na siłę, przetwarzania linkowego.
; Parametry sterowania instrukcją warunkową{{dk}}
* {{Code|o}}, {{Code|astandardowo}} - wtedy funkcja generuje link do artykułu na stronie zbiorczej, wtedy funkcja tak działa na stronie zbiorczej, jak by nie była nią,
* {{Code|c}}, {{Code|nagłówkowo}} - wtedy funkcja przy fałszywej wartości powyższego parametry, funkcja generuje odśnośnik na danej stronie do obiektu na niej, do identyfikatora jakiegoś elementu, wtedy szablon działa na stronie, jak by był stroną zbiorczą.
----
W tej funkcji jeszcze jest liczona zmienna: {{Code|pelnanazwajednostki}}, oznaczająca: '''pełną nazwa jednostki''' uzyskana jest, dzięki podanym zmiennym pudełkowym {{m|Pudełko}}, czyli według: {{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 te niepodane są liczona na podstawie parametrów aktualnej strony, a jeśli są niepodane, wtedy jest sprawdzane jedynie ich nieistnienie, na podstawie tego wszystkiego jest liczona pełna nazwa jednostki, przy pomocy funkcji: {{sr|#p["Pełna nazwa jednostki"]|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ł z tą aktualną, przy nie podaniu parametrów przestrzennych i jednostki, a z nimi adres woluminy może być inny. Ale parametry pudełek też mogą wskazywać na inny podręcznik, czy wielopoziomowy podręcznik w przestrzeniach nieksiążkowych, jak w przestrzeni {{Np|Project|link=tak}}.
----
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}}}} (a ta przedostatnia jest uruchamiana przez funkcję: {{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>
0ybgv69gprzxoka38y6qxmteczv454t
Wikibooks:Moduły/Parametry
4
63291
553096
553049
2026-08-24T15:44:51Z
Persino
2851
/* Spis treści */
553096
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych, możliwość liczenia liczby wszystkich elementów dla niej, uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel, pozwalająkopiowanie tabel łańcuchów ich z ich modyfikacją, kipiowane normalne i rekurencyjne tabel, kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach), ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś elementy o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatów łańcuchów znakowych, czyli to są funkcje modyfikujące łąńcuchy znaków, trimujące ke, jak i usuwające powstarzające się odstępy, w tym dolne myślniki,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z tabeli o takich kluczach, które są w nazwach drugiej tabeli,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia tabeli,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu,
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej,
* {{lru|Moduły/Parametry/Tom XVI}} - ffunkcje porównań,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
plw7sti29tvv3s609iipra6vwvf6kgn
553097
553096
2026-08-24T15:45:49Z
Persino
2851
/* Spis treści */
553097
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych, możliwość liczenia liczby wszystkich elementów dla niej, uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel, pozwalająkopiowanie tabel łańcuchów ich z ich modyfikacją, kipiowane normalne i rekurencyjne tabel, kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach), ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś elementy o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatów łańcuchów znakowych, czyli to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z tabeli o takich kluczach, które są w nazwach drugiej tabeli,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia tabeli,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu,
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej,
* {{lru|Moduły/Parametry/Tom XVI}} - ffunkcje porównań,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6sqjipjphde7hikyhlk61wpklb248ra
553098
553097
2026-08-24T15:55:42Z
Persino
2851
uste
553098
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych, możliwość liczenia liczby wszystkich elementów dla niej, uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel, pozwalająkopiowanie tabel łańcuchów ich z ich modyfikacją, kipiowane normalne i rekurencyjne tabel, kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach), ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś elementy o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatów łańcuchów znakowych, czyli to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z tabeli o takich kluczach, które są w nazwach drugiej tabeli,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia nowej tabeli, bez powtarzających siekluczy drugiej,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu, czyli wskazujące jakiego typu są podane elementy, obsługiwane typy to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}},
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu, czzyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni spisóbod szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami ramki,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''',
* {{lru|Moduły/Parametry/Tom XVI}} - funkcje porównań, czyli proxedury wskazujące, czy parametry w jakiej relacji się względem siebie,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki, ramka może przyjmować wiele numerowanych elememtów,ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów z nich,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory, różnego ttpu, numerujące po koleii, lub w kolejności alfabetycznej,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy poddanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
b9mo7l50uasw4egng3y6qxfxwax17vs
553099
553098
2026-08-24T16:03:59Z
Persino
2851
/* Spis treści */
553099
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z tabeli o takich kluczach, które są w nazwach drugiej tabeli,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}},
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni spisób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą,
* {{lru|Moduły/Parametry/Tom XVI}} - funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji się względem siebie,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5qwa5hqcql8apl5x0myd1de6sncp8da
553100
553099
2026-08-24T16:13:52Z
Persino
2851
/* Spis treści */
553100
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z tabeli o takich kluczach, które są w nazwach drugiej tabeli,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}},
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni spisób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą,
* {{lru|Moduły/Parametry/Tom XVI}} - funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9n9mcqe3u1fj7u2pghf46ted0c75qg3
553101
553100
2026-08-24T16:25:01Z
Persino
2851
/* Spis treści */
553101
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}},
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni spisób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą,
* {{lru|Moduły/Parametry/Tom XVI}} - funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8v1yba8gp6f8pv5smb4xgdrbk2hx6v2
553102
553101
2026-08-24T16:26:26Z
Persino
2851
/* Spis treści */
553102
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
* {{lru|Moduły/Parametry/Tom I}} - funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu,
* {{lru|Moduły/Parametry/Tom II}} - funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy,
* {{lru|Moduły/Parametry/Tom III}} - funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu,
* {{lru|Moduły/Parametry/Tom IV}} - funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej,
* {{lru|Moduły/Parametry/Tom V}} - funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach,
* {{lru|Moduły/Parametry/Tom VI}} - funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono,
* {{lru|Moduły/Parametry/Tom VII}} - funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne,
* {{lru|Moduły/Parametry/Tom VIII}} - funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość,
* {{lru|Moduły/Parametry/Tom IX}} - funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie,
* {{lru|Moduły/Parametry/Tom X}} - funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej,
* {{lru|Moduły/Parametry/Tom XI}} - funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej,
* {{lru|Moduły/Parametry/Tom XII}} - funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}},
* {{lru|Moduły/Parametry/Tom XIII}} - funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste,
* {{lru|Moduły/Parametry/Tom XIV}} - funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki,
* {{lru|Moduły/Parametry/Tom XV}} - funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą,
* {{lru|Moduły/Parametry/Tom XVI}} - funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie,
* {{lru|Moduły/Parametry/Tom XVII}} - ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich,
* {{lru|Moduły/Parametry/Tom XVIII}} - metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel,
* {{lru|Moduły/Parametry/Tom XIX}} - iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej,
* {{lru|Moduły/Parametry/Tom XX}} - funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
sb5ybugny8t5ap1v2nqme0sz9pm1wja
553103
553102
2026-08-24T16:32:29Z
Persino
2851
/* Spis treści */
553103
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
=== {{lru|Moduły/Parametry/Tom I}} ===
* Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} ===
* Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} ===
* Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} ===
* funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} ===
* Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} ===
* Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} ===
* Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} ===
* Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} ===
* Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} ===
* Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} ===
* Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} ===
* Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} ===
* Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} ===
* Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} ===
* Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} ===
* Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} ===
* Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} ===
* Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} ===
* Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} ===
* funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k1a6haplba0qjd0f0v2z6aipxy5u6ul
553104
553103
2026-08-24T16:34:46Z
Persino
2851
/* Spis treści */
553104
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
=== {{lru|Moduły/Parametry/Tom I}} ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} ===
Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dmoupcydc3shssyb5zir5d6x1o3xk5z
553105
553104
2026-08-24T16:35:49Z
Persino
2851
/* Spis treści */
553105
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedynncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} ===
Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h1cugg9izp8rpl76m5srjz74jsgud41
553106
553105
2026-08-24T16:40:12Z
Persino
2851
/* Spis treści */
553106
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane, jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} ===
Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
pq2usob5ueuyctqanghg4aw2tuss0wr
553107
553106
2026-08-24T16:41:10Z
Persino
2851
/* Spis treści */
553107
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} ===
Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lxxw341meszo6g87dzqkvsmets8drg2
553108
553107
2026-08-24T16:51:02Z
Persino
2851
553108
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, numerujące po kolei, lub w kolejności alfabetycznej.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4janxfzwiobi76sgsaddymzkx0cjcse
553109
553108
2026-08-24T16:59:51Z
Persino
2851
/* Spis treści */
553109
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
o9xu20i1w7hs94sz2cm5hjypwytyzgb
553110
553109
2026-08-24T17:01:51Z
Persino
2851
/* Spis treści */
553110
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dbgxd77qqi82dxos312itgna2llqym1
553111
553110
2026-08-24T17:10:54Z
Persino
2851
/* Spis treści */
553111
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|1=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jakp nowe elementy w nowej tabeli, w zależności od funkcji lub jego ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m767pwe1f9292wul4mlm81zb20jgmdb
553113
553111
2026-08-24T17:14:41Z
Persino
2851
553113
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy tabela pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jakp nowe elementy w nowej tabeli, w zależności od funkcji lub jego ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n8parcdwsz7qugzymv8drhcoqc89n6a
553114
553113
2026-08-24T17:24:48Z
Persino
2851
/* Spis treści */
553114
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jakp nowe elementy w nowej tabeli, w zależności od funkcji lub jego ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2d9n2pecrzbnxu7tq8t8uttfem0aecr
553115
553114
2026-08-24T17:35:24Z
Persino
2851
/* Spis treści */
553115
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś, z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatów łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jakp nowe elementy w nowej tabeli, w zależności od funkcji lub jego ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fzjuki1cckha3wvwpne3s4xra1pw5fe
553116
553115
2026-08-24T17:36:43Z
Persino
2851
/* Spis treści */
553116
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś, z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatami łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jakp nowe elementy w nowej tabeli, w zależności od funkcji lub jego ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9uh2g0oqaoqa85tywe93wjmkng52c71
553208
553116
2026-08-25T00:12:01Z
Persino
2851
/* Spis treści */
553208
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś, z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatami łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jako nowe elementy w nowej tabeli, w zależności od funkcji lub jej ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienmą.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
s89tiag88h6lb9799f3b708zhbi1397
553209
553208
2026-08-25T00:14:25Z
Persino
2851
/* Spis treści */
553209
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś, z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatami łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jako nowe elementy w nowej tabeli, w zależności od funkcji lub jej ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienną.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywwać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
k5t2jt62n708nx33h7zo8houqg3ewum
553210
553209
2026-08-25T00:15:51Z
Persino
2851
/* Spis treści */
553210
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|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 parametry_modul=require("Module:Parametry");
</syntaxhighlight>
dzięki, któremu można wypisywać funkcje należącego do niego.
Moduł: {{ld2|Parametry}}, służy do operowania na wszelkiego rodzaju parametrach, modyfikowaniu ich, a nawet podawania z funkcji z tablicy ramki tablicy transportu tego modułu, i innych funkcji z innych modułów, które wykorzystują funkcje parametru tego modułu.
Będziemy mówili, że zbiór jest ponumerowany, gdy ma elementy nienazwane od jeden zwyż, bez przerw, do pewnego końca, wtedy jest to sekwencja w języku {{lpg|Lua}}, a jeżeli ona nie jest ponumerowana, to ma tylko elementy nienazwane, czyli wtedy nie jest sekwencją. Zbiór z elementami nienazwanymi (nazwane liczbami naturalnymi) może zawierać czasami elementy nazwane, ktorego nazwy nie są już takie, zwykle je się oznacza łańcuchami znakowymi, a w języku {{lpg|Lua}} to są po prostu elementy typu: {{Code|string}}, a liczby naturalne typu: {{Code|number}}.
== Spis treści ==
{{Kolumny|2|2=
=== {{lru|Moduły/Parametry/Tom I}} - Funkcje liczb elementów w tabeli ===
Funkcje liczb elementów w tabeli, numerowanych i nienazwanych. Możliwość liczenia liczby wszystkich elementów dla niej. Uwzględnione są tabele normalne, jak i tabele parametrów szablonu.
=== {{lru|Moduły/Parametry/Tom II}} - Funkcje minimalnej i maksymalnej wartości w tabeli ===
Funkcje minimalnej i maksymalnej wartości w tabeli i tabeli parametrów szablonów, a funkcje jednoczesnego liczenia jednocześnie tych dwóch wartości dla dabel nazwanych, ale te parametry mają w sobie numerki, ale one mogą mieć w sobie przerwy.
=== {{lru|Moduły/Parametry/Tom III}} - Funkcje, czy są takie parametry ===
Funkcje, czy są takie parametry, nazwane lub nienazwane (w szczególności numerowane), jak i parametry dowolnego typu.
=== {{lru|Moduły/Parametry/Tom IV}} - Funkcje kopiowania tabel ===
funkcje kopiowania tabel. Pozwalają kopiowanie tabel łańcuchów ich z ich modyfikacją, kopiowane normalne - niedokładne, i rekurencyjne tabel - dokładne, czy kopiowanie bez pewnych kluczy tabeli pierwotnej.
=== {{lru|Moduły/Parametry/Tom V}} - Funkcje istnienia parametrów ===
Funkcje istnienia parametrów, wskazujące, czy istnieją w szablonie pewne elementy wskazane w ramce, tzn.: czy są pojedyncze parametry nazwane liczbą (czyli nienazwane, czy występują parametry o tych numerach) lub ciągiem (nazwane, niebędące liczbami, czy o tych kluczach, będących łańcuchami), czy jakikolwiek normalne wielowartościowe funkcje parametrów nazwanych albo numerowanych i nienazwanych, czyli kolejno, czy występują takie jakieś, z któreś elementów o ich wartościach.
=== {{lru|Moduły/Parametry/Tom VI}} - Funkcje manipulowania formatami łańcuchów znakowych ===
Funkcje manipulowania formatami łańcuchów znakowych. Więc to są funkcje modyfikujące łańcuchy znaków, trimujące, jak i usuwające powstarzające się odstępy, w nich, w tym również dolne myślniki, jeżeli tak funkcję ustawiono.
=== {{lru|Moduły/Parametry/Tom VII}} - Funkcje dodawania lub usuwania elementu do tabeli zbioru ===
Funkcje dodawania lub usuwania elementu do tabeli zbioru, tu są procedury dodające elementy do zbioru ich, numerki przy elementach tam nie są ważne.
=== {{lru|Moduły/Parametry/Tom VIII}} - Funkcje istnienia elementów tabeli ===
Funkcje istnienia elementów tabeli, czy istnieje taki parametr numerowany lub nienazwany, o pewnej wartości, sprawdza, czy istnieje taki klucz, a nawet czy w tabeli element pod tych kluczem ma taką wartość.
=== {{lru|Moduły/Parametry/Tom IX}} - Łączenie wielu tabel ===
Funkcje łączenia wielu tabel, przeróżnego typu, traktująca elementy nienazwane jako elementy zbioru lub nie, jako nowe elementy w nowej tabeli, w zależności od funkcji lub jej ustawień.
=== {{lru|Moduły/Parametry/Tom X}} - Funkcje dodawania lub usuwania elementów z tabeli o takich kluczach ===
Funkcje usuwania elementów z pierwszej tabeli o takich kluczach, które są w nazwach drugiej.
=== {{lru|Moduły/Parametry/Tom XI}} - Tworzenie tabeli ===
Funkcje tworzenia nowej tabeli, bez powtarzających sie kluczy drugiej.
=== {{lru|Moduły/Parametry/Tom XII}} - Funkcje typu ===
Funkcje typu, czyli wskazujące, jakiego typu są podane elementy, obsługiwane rodzaje to: {{Code|table}}, {{Code|function}}, {{Code|string}}, {{Code|boolean}}, {{Code|number}} i {{Code|nil}}.
=== {{lru|Moduły/Parametry/Tom XIII}} - Funkcje prawdy i fałszu ===
Funkcje prawdy i fałszu, czyli procedury sprawdzające, czy podane elementy, czy są puste, czy nie, lub wskazujące, czy składają się z samych znaków odstępów, wtedy są niepuste.
=== {{lru|Moduły/Parametry/Tom XIV}} - Funkcje parametrów ===
Funkcje parametrów, czyli procedury wydobywające parametry w odpowiedni sposób od szablonu rodzica, a nawet przystosowane jednocześnie, by wydobywały, czasami argumenty z ramki.
=== {{lru|Moduły/Parametry/Tom XV}} - Funkcje wartości logicznej ===
Funkcje wartości logicznej, występujące w logice, tzn.: '''and''', '''or''' i '''not''', przyjmujące wiele lub jedną zmienną.
=== {{lru|Moduły/Parametry/Tom XVI}} - Funkcje porównań ===
Funkcje porównań, czyli procedury wskazujące, czy parametry są w jakiej relacji względem siebie.
=== {{lru|Moduły/Parametry/Tom XVII}} - Ile jest podanych elementów w szablonie według parametrów ramki ===
Ile jest podanych elementów w szablonie według parametrów ramki. Ramka może przyjmować wiele numerowanych elementów, ktore są kluczami parametrów szablonów, funkcja liczy, ile jest podanych takich argumentów w nich.
=== {{lru|Moduły/Parametry/Tom XVIII}} - Metafunkcje i metatabele ===
Metafunkcje i metatabele, czyli funkcje definiujące metatabelki i w nich metafunkcje, czyli takie specjalne tabele i w nich funkcje, które można przyłączać do innych tabel.
=== {{lru|Moduły/Parametry/Tom XIX}} - Iteratory ===
Iteratory, różnego typu, zwracające kolejno elementy w kolejności numerowanej - gdy nazwy są liczbami naturalnymi, ponumerowane po kolei, lub alfabetycznej - gdy nazwy są łańcuchami znakowymi. Gdy nazwy są takie i takie, to iteratory w nim można wykorzystywać zarówno pierwszego lub drugiego typu.
=== {{lru|Moduły/Parametry/Tom XX}} - Funkcje wartości minimalnej i maksymalnej ===
Funkcje wartości minimalnej i maksymalnej, z dwóch parametrów, a nawet liczb, czy podanych w różnych jednostkach bezwzględnych.
}}
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lryjkge9t2k3l04naqih3sbalzkio4a
Wikibooks:Moduły/StronicowyParser/Rozdziały
4
63903
553211
552714
2026-08-25T00:24:29Z
Persino
2851
/* Inne */
553211
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały/Tom II}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
oisl4unjijm2gvbrm7sboiht9c9c0zb
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V
4
63907
553212
552367
2026-08-25T01:10:09Z
Persino
2851
553212
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek rozdziału.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy ponocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z stworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
qxvp55yd5s018evhhmhm4oyjpnt6kyw
553213
553212
2026-08-25T01:15:04Z
Persino
2851
/* {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} */
553213
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy ponocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z stworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
4jg5fkmnhui1pf2wdmjko3phm4bm53a
553214
553213
2026-08-25T01:16:49Z
Persino
2851
/* {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} */
553214
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy ponocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z stworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
1q5ytphsojndt070bk7307em6k16agg
553215
553214
2026-08-25T01:18:35Z
Persino
2851
/* Szablony, z których z których zostawiane są tylko zawartości */
553215
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z stworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mbv04txific11xivzw1xcjcp7qmjgfa
553216
553215
2026-08-25T01:20:30Z
Persino
2851
/* Inne szablony usuwane z tekstu */
553216
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia wartość tabeli o kluczu równym nazwie tego szablonu.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
i5tyslt08cony7tq9145tf93hixgg3a
553217
553216
2026-08-25T01:24:52Z
Persino
2851
/* Znaczniki szablonowe */
553217
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jego definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
3jblxde160nujjdohs8kjljk7wryjon
553218
553217
2026-08-25T01:26:14Z
Persino
2851
/* Magiczne derektywy */
553218
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kopletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dbgiv3v03mpwqiwwguic4tfdvoht631
553219
553218
2026-08-25T01:33:38Z
Persino
2851
/* Zmiana tekstu krok 1 */
553219
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego argumentami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projekt, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, innyniż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę, jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
teyub7cfra6e6l8u9jud7z0nc2qvnqt
553220
553219
2026-08-25T01:43:46Z
Persino
2851
/* {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} */
553220
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
hk4b02bl9e2p7bffccxicddjrbtzc9e
553221
553220
2026-08-25T01:44:36Z
Persino
2851
/* {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} */
553221
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku,gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ayqen4ibaa9pgsrtawj0jbh3vk26p3w
553222
553221
2026-08-25T01:56:35Z
Persino
2851
/* {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} */
553222
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustwioną na samym początku brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m5wehqi2jzu198uuxn607s7iookmujv
553223
553222
2026-08-25T01:57:41Z
Persino
2851
/* {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} */
553223
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnętrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
a64ln7nxk91aknuhn9hkl2iuo5ifii1
553224
553223
2026-08-25T02:14:10Z
Persino
2851
/* {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} */
553224
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0k4azoypg44d9letal1t8ui5tv72gak
553225
553224
2026-08-25T02:17:49Z
Persino
2851
/* {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} */
553225
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}},
* {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}},
* {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}},
* {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
at6gss0qzwvxnp1ev2l1klktuwr1evy
553256
553225
2026-08-25T07:23:53Z
Persino
2851
/* {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} */
553256
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony spisu
* {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
* {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
* {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
j5o0hfl8mog7ibcg9s8wesjem8x0sth
553257
553256
2026-08-25T07:28:28Z
Persino
2851
/* {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} */
553257
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu (może zwracać wartość: {{Code|nil}}) przed samym kodowaniem, jeżeli tekst jest w ogóle jest taki, a jeśli nie, ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ana4esp48muyha3z5q3gqeus4o63a9d
553258
553257
2026-08-25T07:36:30Z
Persino
2851
/* {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} */
553258
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, czy nie, gdy wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona przyjmuje wartość odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami i szablonami nowej linii i kresek w linii, tzn. ich zamiany każda z nich na jedną spację.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{s|Br}} i {{s|Hr}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa nowe zagnieżdzone linie w nowych liniach z szablonami i znacznikami centrowania, zastępując je odpowiednimi ich zawartościami, pozostawiając główną nową linię z szablonem lub znacznikiem centrowania.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, nowe linie powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany z drugą wartością {{Code|true}}, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikkowany: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, podany jako pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c6bgl52dtc60hsh3bqhqqszb8npftox
Wikibooks:Moduły/Parametry/Tom XIV
4
63980
553131
553086
2026-08-24T18:30:51Z
Persino
2851
/* {{Code|p.PobierzParametr}} */
553131
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Są tutaj przedstawione funkcje parametrów.
== {{Code|p.PobierzFrameEwentualnieParent}} ==
Argument tej funkcji {{Code|frame}} koniecznie musi być tablicą, w przypadku przeciwnym wywoła to błąd języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego nieistniejący element {{Code|getParent}}, który ma prawo nie być.
Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzFrameEwentualnieParent(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej, którą jest {{Parametr|wyspecjalizowana|tak}}.
W ramce podajemy argumenty wraz z tym specjalnym parametrem:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzFrameEwentualnieParent(frame).args;
....
end;
</syntaxhighlight>
To wtedy w kodzie ściągane parametry ramki dziecka.
Tę funkcję można równie dobrze wykorzystać do zwykłych tabel:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzFrameEwentualnieParent(tabela);
</syntaxhighlight>
A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdy by funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.:
<syntaxhighlight lang="lua">
--- Pierwsza możliwość;
local wartosc1=p["Nazwa funkcji"](frame);
-- Druga możliwość
local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
</syntaxhighlight>
Dla obu jest taka niedogodność, że jedynie jest taka nieprawidłowość, że w przypadku parametru tablicy ramki tablicy transportu należy podawać uzyskany element {{Code|args}}, a w przypadku zwykłej tablicy już nie, tą niedokodność rozwiązuje funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}.
== {{Code|p.PobierzArgsParametry}} ==
Argument tej funkcji {{Code|frame}} koniecznie nie musi być tablicą, bo wtedy nie wywoła to błędu języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego niepusty element {{Code|getParent}}, bo przedtem sprawdzana jest w tej funkcji, czy jest to tablica.
W definicji tej funkcji zmienna uzyskana z funkcji: {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}, a jeśli jej składowa {{Code|args}} jest tablicą, to jest właśnie ona zwracana, a jeśli istnieje, ale nie jest tablicą, lub ona nie istnieje, to wtedy brana jest właśnie wartość tablicowa {{Code|frame}}, jeśli jest ona taka, a gdy nie, to wtedy z tej funkcji tutaj nie korzystamy.
Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica transportu ramki,
* {{Code|czy_nie_tablica_jako_tablica}} - czy wartości nietablicowe umieszczać w jednoelemenowej tabeli.
Funkcja wykorzystuje wspomnianą powyżej funkcję do swojego działania, ona jest wtedy aktywowana, gdy zmienna {{Code|frame}} jest tablicą, i jest sprawdzane, czy ona posiada nazwany element o kluczu {{Code|args}}, i czy jest on tablicowy.
Jeżeli wartością zmiennej {{Code|frame}} nie jest tablica, ale nie przybiera wartości {{Code|nil}}, to ona jest umieszczana w tablicy, jeżeli zmiennej {{Code|czy_nie_tablica_jako_tablica}} przydzielimy wartość {{Code|true}}, w przeciwnym wypadku zwracana jest ona w postaci niezmienionej, a jeżeli wartość tej zmiennej nie istnieje, to zwracana jest zwykła tablica pusta.
Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej.
W ramce podajemy argumenty wraz z tym specjalnym parametrem:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
....
end;
</syntaxhighlight>
To wtedy w kodzie ściągane parametry ramki dziecka.
Tę funkcję można równie dobrze wykorzystać do zwykłych tabel:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(tabela);
</syntaxhighlight>
A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdyby funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.:
<syntaxhighlight lang="lua">
--- Pierwsza możliwość;
local wartosc1=p["Nazwa funkcji"](frame);
-- Druga możliwość
local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
</syntaxhighlight>
Dla obu tych przypadków nie ma żadnej niedogodności, jak to występowała w {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}.
Jeśliby do funkcji tablicy transportu dać wartość równą nie tablicy, to wtedy równoważnie możemy napisać:
<syntaxhighlight lang="lua">
local wartosc="wartość";
local wynik=p["Nazwa funkcji"](wartosc);
</syntaxhighlight>
to wtedy definicję tej funkcji piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local wartosc=args[1];
end;
</syntaxhighlight>
lub równoważnie możemy zapisać:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local wartosc=parametry_modul.PobierzArgsParametry(frame);
end;
</syntaxhighlight>
A jeżeli nie wsadziliśmy żadnej wartości do funkcji ramki tablicy transportu lub tą wartością jest {{Code|nil}}, wtedy:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]();
</syntaxhighlight>
wtedy definicja tej funkcji wygląda:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
-- Zmienna: args, wskazuje na wartość, którą jest tablicą pustą, tzn. w tej tablicy nie ma wcale elementów;
local args=parametry_modul.PobierzArgsParametry(frame);
end;
</syntaxhighlight>
Widzimy, że wtedy zmienna {{Code|args}} jest normalną pustą tablicą, i nie musimy wtedy wcale pisać poniżej, bo wtedy wychodzi w tym przypadku na to samo:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
</syntaxhighlight>
Argument drugi w {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, który w naszym przypadku musi mieć wartość {{Code|true}}, a wtedy jest jedynie sens, gdy {{Code|frame}} nie jest tablicą, i gdy chcemy tą wartość umieścić w tablicy, a nie powtórzyć wartość, tzn. chcemy napisać: {{Code|{{(}}frame,{{)}}}}, w przeciwnym wypadku musilibyśmy napisać coś w rodzaju, zamiast tak spreparowanej tablicy: {{Code|frame}}, czyli:
<syntaxhighlight lang="lua">
-- Pierwszy przypadek, gdy frame jest wartością nietablicową;
local parametry_modul=require("Module:Parametry");
...
-- Zwracana wartość: args, to nic innego niż: {frame,};
local args=parametry_modul.PobierzArgsParametry(frame,true);
...
-- Zwracana wartość: args, to nic innego niż: frame, a nie {frame,}, jak poprzednio;
local args=parametry_modul.PobierzArgsParametry(frame);
</syntaxhighlight>
== {{Code|p.PobierzParametryRamki}} ==
Funkcja służy do ustawienia pewnych domyślnych dwóch pewnych funkcji służących do pobieranie danych z tabelki z pierwszej tej funkcji, jeżeli ona posiada klucz o wartości {{Code|args}}, to zwracana jest ta właśnie tablica jako argument pierwszej tej funkcji, jeżeli jest w ogóle tablicą, w przeciwnym wypadku zwracana jest ta oryginalna tablica też jako argument tej funkcji, w przeciwnym dalszym wypadku zwracana jest zwracana wartość ta jako argument tej drugiej funkcji, która zwraca prawdziwą wartość z argumentu tylko za pierwszym razem, z tej funkcji, za następnym i dalszym razem {{Code|nil}}. Z tak utworzonej ogólnie większej funkcji wykorzystywana jest w budowie omawianej funkcji, która jest zwracana przez funkcję w tym nagłówku, która względem jego budowy wywołuje raz pierwszą albo drugą poprzednią wspomnianą funkcję zależną od rodzaju zmiennej {{Code|frame}}, która może być tabelką, ale nie musi być. Ta funkcja zwracana przez funkcję w nagłówku przyjmuje argument, która jest kluczem do tych wspomnianych, może że, tabel (dokładnie, która ta może tabelka to zależy od formatu tej naszej rozważanej zmiennej), a jeżeli to nie tabelka, co jest zwracane, to już zostało powiedziane.
Definicja skrótowa tej funkcji jest:
<syntaxhighlight lang="lua">
function p.PobierzParametryRamki(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Weźmy ramkę sformułowaną w wikikodzie jako dziecko w szablonie rodzicu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5}}
</syntaxhighlight>
To wtedy tablica ramki tablicy transportu posiada właśnie {{Code|frame}}, która jest tablicą, i na pewno posiada tablicę o nazwie {{Code|args}}, to wtedy tę funkcję wywołaną w ramce, która wywołuje funkcję w nagłówku, formułujemy:
<syntaxhighlight lang="lua">
local p={};
local p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame);
...
end;
</syntaxhighlight>
Równie dobrze funkcję z ramki można wywołać w sposób, co wtedy ta funkcja też zostanie wywołana pozytywnie:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{args={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}};
</syntaxhighlight>
W tej funkcji nie trzeba definiować funkcji fałszywej {{Code|getParent}}, w postaci: {{Code|getParent{{=}}function()end}}. Widzimi, że ta tablica posiada nazwę zmiennej tablicowej o nazwie {{Code|args}}, ale ona nie jest tablicą ramki tablicy transportu, ale tą tablicę możemy bezposrednio wsadzić w tą główną tablicę w samym argumencie funkcji.
Równie dobrze możemy wywołać tę funkcję zdefiniowaną naszą w jakimś module w sposób:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local wynik=p["Nazwa funkcji"]{tabela);
</syntaxhighlight>
też ta funkcja prawidłowo się wywoła. W tym przypadku, jak i w przypadkach powyżej, wyniki uzyskuje się w następującym wywołaniach:
<syntaxhighlight lang="lua">
--- Zmienna: wartosc1, przyjmuje wartość: "wartość1";
local wartosc1=PobierzParametryRamki("nazwa1");
--- Zmienna: wartosc2, przyjmuje wartość: "wartość2";
local wartosc2=PobierzParametryRamki("nazwa2");
--- Zmienna: wartosc3, przyjmuje wartość: "wartość3";
local wartosc3=PobierzParametryRamki(1);
</syntaxhighlight>
W innym przypadku wywołań funkcji ramki jest wsadzenie do niej zwykłego nietablicowego elementu, może być też to wartość: {{Code|nil}}. A to wywołanie jest:
<syntaxhighlight lang="lua">
local wartosc="wartość";
--Zmienna: wartosc, nie jest w tym przypadku tablicą;
local wynik=p["Nazwa funkcji"](wartosc);
</syntaxhighlight>
Wtedy w tej ramce w celu uzyskania jakikolwiek wartości jest przykład wywołania tej funkcji zwracanej przez funkcję w ramce z argumentem pustym.
<syntaxhighlight lang="lua">
-- Zmienna: wartość1, przyjmuje wartość: "wartość"; Jeżeli ona, przyjmuje wartość: nil, to wywołanie rzuci: nil, i za każdym następny razem;
local wartosc1=PobierzParametryRamki();
-- Zmienna: wartość2, przyjmuje wartość: nil;
local wartosc2=PobierzParametryRamki();
</syntaxhighlight>
W wywołaniach powinno dbać się o właściwą kolejność wywołań, bo argumentem funkcji z tablicy transportu może być zwykła tablicowa wartość. Najpierw uzyskujemy wartości nietablicowe, a później tablicowe, na wypadek niewiadomej {{Code|frame}} jakiego typu ma być wartość.
Też ta zmienna może istnieć pod kilkoma możliwymi kluczami, lub tą zmienną może być jedyny argument funkcji, która jest nietablicową wartością, wtedy ją się wywołuje jako dla przypadku, gdy parametr jest nietablicowy lub jest pod kluczem {{Code|tekst}}:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst");
</syntaxhighlight>
Lub chcemy tę funkcję wywołać bezparametrowo, gdy chcemy, by {{Code|frame}} nie była tablicą:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local tekst=parametry_modul.PobierzParametryRamki(frame)();
</syntaxhighlight>
Wtedy ta zmienna w przedostatnim przykładzie jest pod wartością {{Code|tekst}}, gdy wartość {{Code|frame}} jest tablicą, lub może być jedyną wartością, którą jest {{Code|frame}} jako zmienna nietablicowa, wtedy ta zmienna też jest pod {{Code|tekst}}, ta funkcja uzyskana z: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}, wtedy może być wywołana tylko raz z nienilową wartością zwracaną, następnym razem zwraca wartość {{Code|nil}}, wtedy to dotyczy przedostatniego i ostatniego przykładu.
Jeżeli {{Code|frame}} jest nietablicowa, to wtedy wartość {{Code|tekst}} jest taka sama, co {{Code|frame}}. A jeżeli jest tablicą, to ta wartością jest {{Code|frame.args["tekst"]}}, lub gdy {{Code|args}} nie istnieje, lub istnieje, ale jest nietablicowa, to wtedy ta wartość jest {{Code|frame["tekst"]}}.
A gdy zmienne istnieją pod wieloma kluczami, lub gdy funkcję wywołano ze zmienną nietablicową, wtedy ogólnie możemy dla przykładu powiedzieć:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame);
local wartosc1=PobierzParametryRamki("nazwa1") or PobierzParametryRamki(1);
local wartosc2=PobierzParametryRamki("nazwa2") or PobierzParametryRamki(2);
local wartosc3=PobierzParametryRamki("nazwa3") or PobierzParametryRamki(3);
</syntaxhighlight>
Wtedy ta zmienna jest pod kluczem, np.: {{Code|nazwa1}} lub {{Code|1}}, tablicy ramki {{Code|frame}} tablicy transportu, następne wywołania dla następnych kluczy też zrzucą pewne wartości, lub jest ona zwykłą nietablicową wartością mogącą być równą nawet {{Code|nil}}. Następne wywołania uzyskanej tak funkcji w przypadku, gdy {{Code|frame}} jest nietablicowy, rzucać będzie z samej definicji funkcji wartości {{Code|nil}}, czyli {{Code|wartosc2{{=}}wartosc3{{=}}nil}}, ale za to wartość {{Code|wartosc1}} nie musi być, ale może, wartością {{Code|nil}}, jest tą wartością, gdy {{Code|frame{{=}}nil}}, w przeciwnym wypadku za pierwszym razem tej wartości nietablicowej uzyskamy wartość nie {{Code|nil}}, a za drugim i dalszym zawsze wartość {{Code|nil}}.
== {{Code|p.PobierzElementNumerowanyZFrameLubTablicy}} ==
Definicja skrótowa funkcji jest z parametrem charakteryzującym pewien zestaw zmiennych {{Code|frame}}, które nie jest tablicą ramki tablicy transportu, tylko innym parametrem, który jest tablicą parametrów podanych do funkcji, nawet gdy parametrem podanym do funkcji, w której wykorzystujemy tą funkcję, jest jedyna zmienna będąca tablicą ramki, ale z drugiej strony tak nie musi być, może być to rozbudowany zestaw zmiennych, np. nazwanych i nienazwanych, którego wszystkie sposoby podawania łączymy jednym sposobem podawania. Mimo że parametry funkcji są parametrami nienazwanymi, mogą być one ponumerowane, ale zmienna w tablicy może przyjmować wartość tą samą na różne sposoby, raz w sposób nazwany, a za innym sposobem jako nienazwany. Ogólnie ostateczne parametry łączymy w dane parametry za pomocą jednego sposobu, tzn. za pomocą tej funkcji, i dla tak uzyskanej tablicy tworzymy funkcję zwracaną przez funkcję w nagłówku, która przyjmuje parametr, który jest kluczem tej uzyskanej tablicy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzElementNumerowanyZFrameLubTablicy(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Weźmy najprostszy sposób realizacji tej funkcji, w realizacji: {{Code|1-1, 2-2, 3-3}}, czyli ten opis jest zaraz poniżej.
Weźmy funkcję, którą można wywoływać z wieloma parametrami, jak i w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, którą przykładowo piszemy jego wywołanie wewnątrz innej funkcji na pięć sposobów, czyli teraz pierwszy sposób z tylko z parametrem, więc tablicą ramki tablicy transportu wywodzącą się z ramki uruchomioną w wikikodzie w jakimś szablonie rodzicu:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"](frame);
</syntaxhighlight>
a teraz drugi sposób, pisząc, bezpośrednio inaczej, formułując wywołanie tej funkcji, używając zmiennych tablicowych tablicy ramki, ale to nie jest tak naprawdę tablica ramka tablicy transportu, tylko parametr podany bezpośrednio do funkcji, tak jak się to robi w języku {{lpg|Lua}}, nie jak w przykładzie powyżej, więc:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{args={"wartość1","wartość2","wartość3",},};
</syntaxhighlight>
Lub równoważnie, pisząc, nie używając zmiennej {{Code|args}}:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{"wartość1","wartość2","wartość3",};
</syntaxhighlight>
Albo te parametry wsadzając do funkcji:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]("wartość1","wartość2","wartość3");
</syntaxhighlight>
Można też wywołać to wszystko w ramce, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikpdzie, wtedy wsadzając parametry do ramki:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|wartość1|wartość2|wartość3}}
</syntaxhighlight>
A jak połączyć wszystkie te pięć sposobów, posługiwać się tymi sposobami wewnątrz funkcji {{Code|Nazwa funkcji}} w sposób jednolity, jedynie wtedy należy skorzystać z funkcji z definiowaną w jakimś module w sposób:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(...)
local tablica_prametrow_funkcji={...};
local parametry_modul=require("Module:Parametry");
local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji);
...
end;
</syntaxhighlight>
Wtedy za pomocą zmiennej {{Code|PobierzElementNumerowanyZFrameLubTablicy}} dostaliśmy się do funkcji, która przyjmuje jedyny parametr, aby dostać się do elementów tablicy uzyskanej w wewnątrz tej funkcji, zdefiniowaną w tablicy {{Code|tablica_prametrow_funkcji}}, która jest nic innym jak zestawem parametrów w funkcji: {{Code|Nazwa funkcji}}. W pierwszym i drugim sposobem zmienna ta nazwijmy to jako {{Code|args}} jest zmienną z podtablicy innego {{Code|args}} przekazanych jako parametr tablicy do funkcji, w trzecim sposobie tą zmienną jest cała tablica, a czwartym jest zestaw parametrów. A czym się różnią się te sposoby, a więc te sposoby można powiązać jedną tylko funkcją powiedzianą w nagłówku według przykładu podaną zaraz powyżej, wtedy możemy dostawać się do tych samych zmiennych o takich samych nazwach i wartościach, ale w różnych reprezentacjach na różne sposoby, wtedy można powiedzieć, że:
<syntaxhighlight lang="lua">
args[1]="wartość1";
args[2]="wartość2";
args[3]="wartość3";
</syntaxhighlight>
Czyli w wyniku działania funkcji w nagłówku, otrzymamy funkcję zwracającą te wartości, która operuje na tej tablicy, której wynikiem jest zestaw zmiennych ponumerowanych, ogólnie nienazwanych, której wartości odpowiadają te podane w ramce ostatniej powyżej.
Na podstawie tego wiemy, jak działa funkcja ta z nagłówka.
Pisząc w inny sposób, można też wskazywać:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(...)
local tablica_prametrow_funkcji={...};
local parametry_modul=require("Module:Parametry");
local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji);
local wartosc1=PobierzElementNumerowanyZFrameLubTablicy("nazwa1") or PobierzElementNumerowanyZFrameLubTablicy(1);
local wartosc2=PobierzElementNumerowanyZFrameLubTablicy("nazwa2") or PobierzElementNumerowanyZFrameLubTablicy(2);
local wartosc3=PobierzElementNumerowanyZFrameLubTablicy("nazwa3") or PobierzElementNumerowanyZFrameLubTablicy(3);
end;
</syntaxhighlight>
Zmienne w przykładzie o kluczach: {{Code|nazwa1}}, {{Code|nazwa2}} i {{Code|nazwa3}}, posiadające pewne swoje wartości, to są zmienne w tablicy {{Code|tablica_prametrow_funkcji}}, podane też jako zmienne, jako pewne argumenty tablicy, który są w tej funkcji zwracanej jako argument (parametr) funkcji, jeżeli argumenty podano w postaci jednego parametru funkcji w postaci pewnej tablicy z np. elementami nazwanymi, lub jako wiele argumentów w ramce, w wikikodzie, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w pewnym szablonie, a rozpatrując dalej elementy względem ich nazw, np. alternatywnych, to te numery mogą być: {{Code|1}}, {{Code|2}} i {{Code|3}}, to jest numer parametru, jeżeli argumenty do funkcji podano w postaci wielu jego parametrów.
== {{Code|p.PobierzParametr}} ==
Ta funkcja zwraca znów inną funkcję, która ma jedyny parametr, mówiący jakiego parametru poszukujemy, co jest wyjaśnione w definicji funkcji z nagłówka, że ona zwraca tą właśnie funkcje.
Definicja skrótowa dunkcji:
<syntaxhighlight lang="lua">
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
...
return function(nazwa)
return __pobierz_parametr_table_args(nazwa);
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}} - parametry logiczne dodatkowe funkcji.
Funkcja zwraca jednocześnie dwie wartości, ta zwrócona z funkcji z nagłówka, prawdziwą wartość, i numer metody w postaci: {{Code|return wartosc, numer_metody}}.
Ta funkcja zwracana ma w swojej definicji inną jeszcze funkcję z tym samym parametrem, co jego rodzic, i to jest za każdym razem inna funkcja w zależności z jakim typem danych się posługujemy {{Code|frame}} i jakie podaliśmy parametry, tzn. pod warunkiem, gdy zmienna {{Code|frame}} jest tablicą, czyli te zmienne druga: {{Code|czy_frame_lub_parent}} (jeżeli funkcja jest uruchomiona w ramce w szablonie, jeżeli wartość {{Code|true}}, to ona wybiera raz parametr z: {{Code|frame.args[nazwa or 1]}}, a za innym razem z {{Code|pf.args[nazwa or 1]}}, gdzie {{Code|pf{{=}}frame:getParent()}}, tutaj jest zwracana wartość: {{Code|return wartosc,2}}), czy trzecia: {{Code|czy_frame}} (która mówi, jeżeli funkcję uruchomiono w ramce, ale przy wartości fałszywej tego pierwszego podanego parametru, mówi, że przy wartości {{Code|true}} tego parametru, wybierana jest zawsze wartość {{Code|frame.args[nazwa or 1}}}, w przeciwnym wypadku uruchamiana jest funkcja {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, tutaj zwracana jest wartość {{Code|return wartosc,1}}). Jeżeli wartością {{Code|frame}} jest wartość nietablicowa, ale niebędącą wartością {{Code|nil}}, wtedy ustawiana jest funkcja, która tylko za pierwszym razem zwraca nienilową wartość {{Code|return wartosc,0}}, a później zwraca wartość {{Code|return nil,0}}. Gdy wartością {{Code|frame}} jest {{Code|nil}}, to funkcja zawsze wraca tą wartość {{Code|return nil,0}}. Powyższy sposób działa również dobrze, gdy zdefiniujemy w parametrach funkcji fałszywą funkcję {{Code|frame.getParent}}.
Gdy funkcja nie jest uruchamiana w ramce lub funkcja {{Code|frame.getParent}} nie jest zdefiniowana, to wtedy funkcja wchodzi zawsze w ten jej krok, jakby {{Code|czy_frame_lub_parent}} było {{Code|false}} według tego powyżej, to wtedy brana jest zmienna {{Code|czy_frame}}, i jaką wartość ona przyjmuje.
Funkcję pisze się według sposobu, którą się wywołuje według:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local wartosc1=PobierzParametr("nazwa1") or PobierzParametr(1);
local wartosc2=PobierzParametr("nazwa2") or PobierzParametr(2);
local wartosc3=PobierzParametr("nazwa3") or PobierzParametr(3);
</syntaxhighlight>
Na wypadek wartości nietabelowej, tą wartość zapisuje się jako pierwszą w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a dla wartości tabelowych, jaka jest kolejność to jest obojętne, byle by to było sensowne.
Tę funkcję podobnie się wywołuje jak funkcję: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}. Wartością {{Code|frame}} nie musi być tablica ramki tablicy transportu, równie dobrze może być to dowolna tablica lub wartość nietablicowa.
Weźmy ramkę, w której uruchamiamy funkcję ramki:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
Ona musi być wywołana z parametrem {{Parametr|wyspecjalizowana|tak}}, jako podpowiedź, że liczą się parametry ramki dziecka, a nie jego rodzica, czyli szablonu. Wtedy funkcję {{Code|Nazwa funkcji}} definiujemy:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
...
end;
</syntaxhighlight>
Wtedy parametr {{Parametr|wyspecjalizowana|tak}} jest ignorowany, a przy wartości {{Code|false}} drugiego parametru funkcji, czyli wywołania: {{Code|local PobierzParametr{{=}}parametry_modul.PobierzParametr(frame,false);}}, już nie, ale nie zawsze. W takim przypadku raz jest brana wartość, jeżeli istnieje, z {{Code|frame.args}}, a jak nie, to z: {{Code|pf.args}}.
Weźmy inny przypadek:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,false,true);
...
end;
</syntaxhighlight>
Przy tym też parametr: {{Parametr|wyspecjalizowana|tak}}, jest ignorowany, wtedy jest zawsze wybierana do rozważań tablica: {{Code|frame.args}}.
Znów w innym przypadku, gdzie parametr: {{Parametr|wyspecjalizowana|tak}}, jest zawsze rozważany w naszym wypadku:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,false,false);
...
end;
</syntaxhighlight>
To to wywołanie, wtedy dokładnie działa jak funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, a zwrócona funkcja: {{Code|PobierzParametr}} pobiera elementy z tak uzyskanej tablicy {{Code|args}}.
W przypadku, gdy {{Code|frame}} nie jest tablicą, wtedy parametry: {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}}, są w takim przypadku zawsze ignorowane, ale muszą być ustawione na wypadek, gdyby do funkcji {{Code|Nazwa funkcji}} wsadzono tablicę, np. z ramki, tzn. tablicę ramki funkcji tablicy transportu.
Najprostszym często ogólnym przykładem, który prawie zawsze jest stosowany:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
...
end;
</syntaxhighlight>
Wtedy parametr: {{Parametr|wyspecjalizowana|tak}}, jest prawie zawsze nieignorowany, ale nie zawsze.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p1su5nogr2qb63nfpgekjbpinhenmki
553132
553131
2026-08-24T18:41:47Z
Persino
2851
/* {{Code|p.PobierzParametr}} */
553132
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
Są tutaj przedstawione funkcje parametrów.
== {{Code|p.PobierzFrameEwentualnieParent}} ==
Argument tej funkcji {{Code|frame}} koniecznie musi być tablicą, w przypadku przeciwnym wywoła to błąd języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego nieistniejący element {{Code|getParent}}, który ma prawo nie być.
Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzFrameEwentualnieParent(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej, którą jest {{Parametr|wyspecjalizowana|tak}}.
W ramce podajemy argumenty wraz z tym specjalnym parametrem:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzFrameEwentualnieParent(frame).args;
....
end;
</syntaxhighlight>
To wtedy w kodzie ściągane parametry ramki dziecka.
Tę funkcję można równie dobrze wykorzystać do zwykłych tabel:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzFrameEwentualnieParent(tabela);
</syntaxhighlight>
A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdy by funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.:
<syntaxhighlight lang="lua">
--- Pierwsza możliwość;
local wartosc1=p["Nazwa funkcji"](frame);
-- Druga możliwość
local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
</syntaxhighlight>
Dla obu jest taka niedogodność, że jedynie jest taka nieprawidłowość, że w przypadku parametru tablicy ramki tablicy transportu należy podawać uzyskany element {{Code|args}}, a w przypadku zwykłej tablicy już nie, tą niedokodność rozwiązuje funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}.
== {{Code|p.PobierzArgsParametry}} ==
Argument tej funkcji {{Code|frame}} koniecznie nie musi być tablicą, bo wtedy nie wywoła to błędu języka {{lpg|Lua}}, że z wartości nietabelowej chcemy wyliczyć jego niepusty element {{Code|getParent}}, bo przedtem sprawdzana jest w tej funkcji, czy jest to tablica.
W definicji tej funkcji zmienna uzyskana z funkcji: {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}, a jeśli jej składowa {{Code|args}} jest tablicą, to jest właśnie ona zwracana, a jeśli istnieje, ale nie jest tablicą, lub ona nie istnieje, to wtedy brana jest właśnie wartość tablicowa {{Code|frame}}, jeśli jest ona taka, a gdy nie, to wtedy z tej funkcji tutaj nie korzystamy.
Funkcja pobiera parametry ramki szablonu rodzica, a nie dziecka, a jeżeli w dziecku w ramce w wikikodzie w szablonie podamy specjalny parametr {{Parametr|wyspecjalizowana|tak}}, to wtedy ta funkcja ściąga parametry ramki.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzArgsParametry(frame, czy_nie_tablica_jako_tablica)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica transportu ramki,
* {{Code|czy_nie_tablica_jako_tablica}} - czy wartości nietablicowe umieszczać w jednoelemenowej tabeli.
Funkcja wykorzystuje wspomnianą powyżej funkcję do swojego działania, ona jest wtedy aktywowana, gdy zmienna {{Code|frame}} jest tablicą, i jest sprawdzane, czy ona posiada nazwany element o kluczu {{Code|args}}, i czy jest on tablicowy.
Jeżeli wartością zmiennej {{Code|frame}} nie jest tablica, ale nie przybiera wartości {{Code|nil}}, to ona jest umieszczana w tablicy, jeżeli zmiennej {{Code|czy_nie_tablica_jako_tablica}} przydzielimy wartość {{Code|true}}, w przeciwnym wypadku zwracana jest ona w postaci niezmienionej, a jeżeli wartość tej zmiennej nie istnieje, to zwracana jest zwykła tablica pusta.
Tą funkcją można sterować ze strony ramki tym właśnie specjalnym parametrem o wartości niepustej.
W ramce podajemy argumenty wraz z tym specjalnym parametrem:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
To wtedy w kodzie w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} w module o nazwie {{Code|Nazwa modułu}}, piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame);
....
end;
</syntaxhighlight>
To wtedy w kodzie ściągane parametry ramki dziecka.
Tę funkcję można równie dobrze wykorzystać do zwykłych tabel:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(tabela);
</syntaxhighlight>
A w tym przypadku ta funkcja nic nie robi, tylko zmienna {{Code|args}} referencyjnie wskazuje na tablicę {{Code|tablica}}. Ale można ją wykorzystać, gdyby funkcja {{Code|Nazwa funkcji}}, była uruchomiona ze zwykłą tablicą, ale z możliwością, że to może być tablicą ramki {{Code|frame}} tablicy transportu, np.:
<syntaxhighlight lang="lua">
--- Pierwsza możliwość;
local wartosc1=p["Nazwa funkcji"](frame);
-- Druga możliwość
local wartosc2=p["Nazwa funkcji"]{["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
</syntaxhighlight>
Dla obu tych przypadków nie ma żadnej niedogodności, jak to występowała w {{Code|{{sr|#p.PobierzFrameEwentualnieParent(frame)|p=Parametry}}}}.
Jeśliby do funkcji tablicy transportu dać wartość równą nie tablicy, to wtedy równoważnie możemy napisać:
<syntaxhighlight lang="lua">
local wartosc="wartość";
local wynik=p["Nazwa funkcji"](wartosc);
</syntaxhighlight>
to wtedy definicję tej funkcji piszemy:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
local wartosc=args[1];
end;
</syntaxhighlight>
lub równoważnie możemy zapisać:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
local wartosc=parametry_modul.PobierzArgsParametry(frame);
end;
</syntaxhighlight>
A jeżeli nie wsadziliśmy żadnej wartości do funkcji ramki tablicy transportu lub tą wartością jest {{Code|nil}}, wtedy:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]();
</syntaxhighlight>
wtedy definicja tej funkcji wygląda:
<syntaxhighlight lang="lua">
local p={};
function p["Nazwa funkcji"](frame)
local parametry_modul=require("Module:Parametry");
-- Zmienna: args, wskazuje na wartość, którą jest tablicą pustą, tzn. w tej tablicy nie ma wcale elementów;
local args=parametry_modul.PobierzArgsParametry(frame);
end;
</syntaxhighlight>
Widzimy, że wtedy zmienna {{Code|args}} jest normalną pustą tablicą, i nie musimy wtedy wcale pisać poniżej, bo wtedy wychodzi w tym przypadku na to samo:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local args=parametry_modul.PobierzArgsParametry(frame,true);
</syntaxhighlight>
Argument drugi w {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, który w naszym przypadku musi mieć wartość {{Code|true}}, a wtedy jest jedynie sens, gdy {{Code|frame}} nie jest tablicą, i gdy chcemy tą wartość umieścić w tablicy, a nie powtórzyć wartość, tzn. chcemy napisać: {{Code|{{(}}frame,{{)}}}}, w przeciwnym wypadku musilibyśmy napisać coś w rodzaju, zamiast tak spreparowanej tablicy: {{Code|frame}}, czyli:
<syntaxhighlight lang="lua">
-- Pierwszy przypadek, gdy frame jest wartością nietablicową;
local parametry_modul=require("Module:Parametry");
...
-- Zwracana wartość: args, to nic innego niż: {frame,};
local args=parametry_modul.PobierzArgsParametry(frame,true);
...
-- Zwracana wartość: args, to nic innego niż: frame, a nie {frame,}, jak poprzednio;
local args=parametry_modul.PobierzArgsParametry(frame);
</syntaxhighlight>
== {{Code|p.PobierzParametryRamki}} ==
Funkcja służy do ustawienia pewnych domyślnych dwóch pewnych funkcji służących do pobieranie danych z tabelki z pierwszej tej funkcji, jeżeli ona posiada klucz o wartości {{Code|args}}, to zwracana jest ta właśnie tablica jako argument pierwszej tej funkcji, jeżeli jest w ogóle tablicą, w przeciwnym wypadku zwracana jest ta oryginalna tablica też jako argument tej funkcji, w przeciwnym dalszym wypadku zwracana jest zwracana wartość ta jako argument tej drugiej funkcji, która zwraca prawdziwą wartość z argumentu tylko za pierwszym razem, z tej funkcji, za następnym i dalszym razem {{Code|nil}}. Z tak utworzonej ogólnie większej funkcji wykorzystywana jest w budowie omawianej funkcji, która jest zwracana przez funkcję w tym nagłówku, która względem jego budowy wywołuje raz pierwszą albo drugą poprzednią wspomnianą funkcję zależną od rodzaju zmiennej {{Code|frame}}, która może być tabelką, ale nie musi być. Ta funkcja zwracana przez funkcję w nagłówku przyjmuje argument, która jest kluczem do tych wspomnianych, może że, tabel (dokładnie, która ta może tabelka to zależy od formatu tej naszej rozważanej zmiennej), a jeżeli to nie tabelka, co jest zwracane, to już zostało powiedziane.
Definicja skrótowa tej funkcji jest:
<syntaxhighlight lang="lua">
function p.PobierzParametryRamki(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Weźmy ramkę sformułowaną w wikikodzie jako dziecko w szablonie rodzicu:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5}}
</syntaxhighlight>
To wtedy tablica ramki tablicy transportu posiada właśnie {{Code|frame}}, która jest tablicą, i na pewno posiada tablicę o nazwie {{Code|args}}, to wtedy tę funkcję wywołaną w ramce, która wywołuje funkcję w nagłówku, formułujemy:
<syntaxhighlight lang="lua">
local p={};
local p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame);
...
end;
</syntaxhighlight>
Równie dobrze funkcję z ramki można wywołać w sposób, co wtedy ta funkcja też zostanie wywołana pozytywnie:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{args={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",}};
</syntaxhighlight>
W tej funkcji nie trzeba definiować funkcji fałszywej {{Code|getParent}}, w postaci: {{Code|getParent{{=}}function()end}}. Widzimi, że ta tablica posiada nazwę zmiennej tablicowej o nazwie {{Code|args}}, ale ona nie jest tablicą ramki tablicy transportu, ale tą tablicę możemy bezposrednio wsadzić w tą główną tablicę w samym argumencie funkcji.
Równie dobrze możemy wywołać tę funkcję zdefiniowaną naszą w jakimś module w sposób:
<syntaxhighlight lang="lua">
local tabela={["nazwa1"]="wartość1",["nazwa2"]="wartość2","wartość3",};
local wynik=p["Nazwa funkcji"]{tabela);
</syntaxhighlight>
też ta funkcja prawidłowo się wywoła. W tym przypadku, jak i w przypadkach powyżej, wyniki uzyskuje się w następującym wywołaniach:
<syntaxhighlight lang="lua">
--- Zmienna: wartosc1, przyjmuje wartość: "wartość1";
local wartosc1=PobierzParametryRamki("nazwa1");
--- Zmienna: wartosc2, przyjmuje wartość: "wartość2";
local wartosc2=PobierzParametryRamki("nazwa2");
--- Zmienna: wartosc3, przyjmuje wartość: "wartość3";
local wartosc3=PobierzParametryRamki(1);
</syntaxhighlight>
W innym przypadku wywołań funkcji ramki jest wsadzenie do niej zwykłego nietablicowego elementu, może być też to wartość: {{Code|nil}}. A to wywołanie jest:
<syntaxhighlight lang="lua">
local wartosc="wartość";
--Zmienna: wartosc, nie jest w tym przypadku tablicą;
local wynik=p["Nazwa funkcji"](wartosc);
</syntaxhighlight>
Wtedy w tej ramce w celu uzyskania jakikolwiek wartości jest przykład wywołania tej funkcji zwracanej przez funkcję w ramce z argumentem pustym.
<syntaxhighlight lang="lua">
-- Zmienna: wartość1, przyjmuje wartość: "wartość"; Jeżeli ona, przyjmuje wartość: nil, to wywołanie rzuci: nil, i za każdym następny razem;
local wartosc1=PobierzParametryRamki();
-- Zmienna: wartość2, przyjmuje wartość: nil;
local wartosc2=PobierzParametryRamki();
</syntaxhighlight>
W wywołaniach powinno dbać się o właściwą kolejność wywołań, bo argumentem funkcji z tablicy transportu może być zwykła tablicowa wartość. Najpierw uzyskujemy wartości nietablicowe, a później tablicowe, na wypadek niewiadomej {{Code|frame}} jakiego typu ma być wartość.
Też ta zmienna może istnieć pod kilkoma możliwymi kluczami, lub tą zmienną może być jedyny argument funkcji, która jest nietablicową wartością, wtedy ją się wywołuje jako dla przypadku, gdy parametr jest nietablicowy lub jest pod kluczem {{Code|tekst}}:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local tekst=parametry_modul.PobierzParametryRamki(frame)("tekst");
</syntaxhighlight>
Lub chcemy tę funkcję wywołać bezparametrowo, gdy chcemy, by {{Code|frame}} nie była tablicą:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local tekst=parametry_modul.PobierzParametryRamki(frame)();
</syntaxhighlight>
Wtedy ta zmienna w przedostatnim przykładzie jest pod wartością {{Code|tekst}}, gdy wartość {{Code|frame}} jest tablicą, lub może być jedyną wartością, którą jest {{Code|frame}} jako zmienna nietablicowa, wtedy ta zmienna też jest pod {{Code|tekst}}, ta funkcja uzyskana z: {{Code|{{sr|#p.PobierzParametryRamki(frame)|p=Parametry}}}}, wtedy może być wywołana tylko raz z nienilową wartością zwracaną, następnym razem zwraca wartość {{Code|nil}}, wtedy to dotyczy przedostatniego i ostatniego przykładu.
Jeżeli {{Code|frame}} jest nietablicowa, to wtedy wartość {{Code|tekst}} jest taka sama, co {{Code|frame}}. A jeżeli jest tablicą, to ta wartością jest {{Code|frame.args["tekst"]}}, lub gdy {{Code|args}} nie istnieje, lub istnieje, ale jest nietablicowa, to wtedy ta wartość jest {{Code|frame["tekst"]}}.
A gdy zmienne istnieją pod wieloma kluczami, lub gdy funkcję wywołano ze zmienną nietablicową, wtedy ogólnie możemy dla przykładu powiedzieć:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local PobierzParametryRamki=parametry_modul.PobierzParametryRamki(frame);
local wartosc1=PobierzParametryRamki("nazwa1") or PobierzParametryRamki(1);
local wartosc2=PobierzParametryRamki("nazwa2") or PobierzParametryRamki(2);
local wartosc3=PobierzParametryRamki("nazwa3") or PobierzParametryRamki(3);
</syntaxhighlight>
Wtedy ta zmienna jest pod kluczem, np.: {{Code|nazwa1}} lub {{Code|1}}, tablicy ramki {{Code|frame}} tablicy transportu, następne wywołania dla następnych kluczy też zrzucą pewne wartości, lub jest ona zwykłą nietablicową wartością mogącą być równą nawet {{Code|nil}}. Następne wywołania uzyskanej tak funkcji w przypadku, gdy {{Code|frame}} jest nietablicowy, rzucać będzie z samej definicji funkcji wartości {{Code|nil}}, czyli {{Code|wartosc2{{=}}wartosc3{{=}}nil}}, ale za to wartość {{Code|wartosc1}} nie musi być, ale może, wartością {{Code|nil}}, jest tą wartością, gdy {{Code|frame{{=}}nil}}, w przeciwnym wypadku za pierwszym razem tej wartości nietablicowej uzyskamy wartość nie {{Code|nil}}, a za drugim i dalszym zawsze wartość {{Code|nil}}.
== {{Code|p.PobierzElementNumerowanyZFrameLubTablicy}} ==
Definicja skrótowa funkcji jest z parametrem charakteryzującym pewien zestaw zmiennych {{Code|frame}}, które nie jest tablicą ramki tablicy transportu, tylko innym parametrem, który jest tablicą parametrów podanych do funkcji, nawet gdy parametrem podanym do funkcji, w której wykorzystujemy tą funkcję, jest jedyna zmienna będąca tablicą ramki, ale z drugiej strony tak nie musi być, może być to rozbudowany zestaw zmiennych, np. nazwanych i nienazwanych, którego wszystkie sposoby podawania łączymy jednym sposobem podawania. Mimo że parametry funkcji są parametrami nienazwanymi, mogą być one ponumerowane, ale zmienna w tablicy może przyjmować wartość tą samą na różne sposoby, raz w sposób nazwany, a za innym sposobem jako nienazwany. Ogólnie ostateczne parametry łączymy w dane parametry za pomocą jednego sposobu, tzn. za pomocą tej funkcji, i dla tak uzyskanej tablicy tworzymy funkcję zwracaną przez funkcję w nagłówku, która przyjmuje parametr, który jest kluczem tej uzyskanej tablicy.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.PobierzElementNumerowanyZFrameLubTablicy(frame)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu.
Weźmy najprostszy sposób realizacji tej funkcji, w realizacji: {{Code|1-1, 2-2, 3-3}}, czyli ten opis jest zaraz poniżej.
Weźmy funkcję, którą można wywoływać z wieloma parametrami, jak i w ramce {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, którą przykładowo piszemy jego wywołanie wewnątrz innej funkcji na pięć sposobów, czyli teraz pierwszy sposób z tylko z parametrem, więc tablicą ramki tablicy transportu wywodzącą się z ramki uruchomioną w wikikodzie w jakimś szablonie rodzicu:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"](frame);
</syntaxhighlight>
a teraz drugi sposób, pisząc, bezpośrednio inaczej, formułując wywołanie tej funkcji, używając zmiennych tablicowych tablicy ramki, ale to nie jest tak naprawdę tablica ramka tablicy transportu, tylko parametr podany bezpośrednio do funkcji, tak jak się to robi w języku {{lpg|Lua}}, nie jak w przykładzie powyżej, więc:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{args={"wartość1","wartość2","wartość3",},};
</syntaxhighlight>
Lub równoważnie, pisząc, nie używając zmiennej {{Code|args}}:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]{"wartość1","wartość2","wartość3",};
</syntaxhighlight>
Albo te parametry wsadzając do funkcji:
<syntaxhighlight lang="lua">
local wynik=p["Nazwa funkcji"]("wartość1","wartość2","wartość3");
</syntaxhighlight>
Można też wywołać to wszystko w ramce, {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w wikikpdzie, wtedy wsadzając parametry do ramki:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|wartość1|wartość2|wartość3}}
</syntaxhighlight>
A jak połączyć wszystkie te pięć sposobów, posługiwać się tymi sposobami wewnątrz funkcji {{Code|Nazwa funkcji}} w sposób jednolity, jedynie wtedy należy skorzystać z funkcji z definiowaną w jakimś module w sposób:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(...)
local tablica_prametrow_funkcji={...};
local parametry_modul=require("Module:Parametry");
local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji);
...
end;
</syntaxhighlight>
Wtedy za pomocą zmiennej {{Code|PobierzElementNumerowanyZFrameLubTablicy}} dostaliśmy się do funkcji, która przyjmuje jedyny parametr, aby dostać się do elementów tablicy uzyskanej w wewnątrz tej funkcji, zdefiniowaną w tablicy {{Code|tablica_prametrow_funkcji}}, która jest nic innym jak zestawem parametrów w funkcji: {{Code|Nazwa funkcji}}. W pierwszym i drugim sposobem zmienna ta nazwijmy to jako {{Code|args}} jest zmienną z podtablicy innego {{Code|args}} przekazanych jako parametr tablicy do funkcji, w trzecim sposobie tą zmienną jest cała tablica, a czwartym jest zestaw parametrów. A czym się różnią się te sposoby, a więc te sposoby można powiązać jedną tylko funkcją powiedzianą w nagłówku według przykładu podaną zaraz powyżej, wtedy możemy dostawać się do tych samych zmiennych o takich samych nazwach i wartościach, ale w różnych reprezentacjach na różne sposoby, wtedy można powiedzieć, że:
<syntaxhighlight lang="lua">
args[1]="wartość1";
args[2]="wartość2";
args[3]="wartość3";
</syntaxhighlight>
Czyli w wyniku działania funkcji w nagłówku, otrzymamy funkcję zwracającą te wartości, która operuje na tej tablicy, której wynikiem jest zestaw zmiennych ponumerowanych, ogólnie nienazwanych, której wartości odpowiadają te podane w ramce ostatniej powyżej.
Na podstawie tego wiemy, jak działa funkcja ta z nagłówka.
Pisząc w inny sposób, można też wskazywać:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(...)
local tablica_prametrow_funkcji={...};
local parametry_modul=require("Module:Parametry");
local PobierzElementNumerowanyZFrameLubTablicy=parametry_modul.PobierzElementNumerowanyZFrameLubTablicy(tablica_prametrow_funkcji);
local wartosc1=PobierzElementNumerowanyZFrameLubTablicy("nazwa1") or PobierzElementNumerowanyZFrameLubTablicy(1);
local wartosc2=PobierzElementNumerowanyZFrameLubTablicy("nazwa2") or PobierzElementNumerowanyZFrameLubTablicy(2);
local wartosc3=PobierzElementNumerowanyZFrameLubTablicy("nazwa3") or PobierzElementNumerowanyZFrameLubTablicy(3);
end;
</syntaxhighlight>
Zmienne w przykładzie o kluczach: {{Code|nazwa1}}, {{Code|nazwa2}} i {{Code|nazwa3}}, posiadające pewne swoje wartości, to są zmienne w tablicy {{Code|tablica_prametrow_funkcji}}, podane też jako zmienne, jako pewne argumenty tablicy, który są w tej funkcji zwracanej jako argument (parametr) funkcji, jeżeli argumenty podano w postaci jednego parametru funkcji w postaci pewnej tablicy z np. elementami nazwanymi, lub jako wiele argumentów w ramce, w wikikodzie, w języku {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, w pewnym szablonie, a rozpatrując dalej elementy względem ich nazw, np. alternatywnych, to te numery mogą być: {{Code|1}}, {{Code|2}} i {{Code|3}}, to jest numer parametru, jeżeli argumenty do funkcji podano w postaci wielu jego parametrów.
== {{Code|p.PobierzParametr}} ==
Ta funkcja zwraca znów inną funkcję, która ma jedyny parametr, mówiący jakiego parametru poszukujemy, co jest wyjaśnione w definicji funkcji z nagłówka, że ona zwraca tą właśnie funkcje.
Definicja skrótowa dunkcji:
<syntaxhighlight lang="lua">
function p.PobierzParametr(frame,czy_frame_lub_parent,czy_frame)
...
return function(nazwa)
return __pobierz_parametr_table_args(nazwa);
end;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} - tablica ramki tablicy transportu,
* {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}} - parametry logiczne dodatkowe funkcji.
Funkcja zwraca jednocześnie dwie wartości, ta zwrócona z funkcji z nagłówka, prawdziwą wartość, i numer metody w postaci: {{Code|return wartosc, numer_metody}}.
Ta funkcja zwracana ma w swojej definicji inną jeszcze funkcję z tym samym parametrem, co jego rodzic, i to jest za każdym razem inna funkcja w zależności z jakim typem danych się posługujemy {{Code|frame}} i jakie podaliśmy parametry, tzn. pod warunkiem, gdy zmienna {{Code|frame}} jest tablicą, czyli te zmienne druga: {{Code|czy_frame_lub_parent}} (jeżeli funkcja jest uruchomiona w ramce w szablonie, jeżeli wartość {{Code|true}}, to ona wybiera raz parametr z: {{Code|frame.args[nazwa or 1]}}, a za innym razem z {{Code|pf.args[nazwa or 1]}}, gdzie {{Code|pf{{=}}frame:getParent()}}, tutaj jest zwracana wartość: {{Code|return wartosc,2}}), czy trzecia: {{Code|czy_frame}} (która mówi, jeżeli funkcję uruchomiono w ramce, ale przy wartości fałszywej tego pierwszego podanego parametru, mówi, że przy wartości {{Code|true}} tego parametru, wybierana jest zawsze wartość {{Code|frame.args[nazwa or 1}}}, w przeciwnym wypadku uruchamiana jest funkcja {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, tutaj zwracana jest wartość {{Code|return wartosc,1}}). Jeżeli wartością {{Code|frame}} jest wartość nietablicowa, ale niebędącą wartością {{Code|nil}}, wtedy ustawiana jest funkcja, która tylko za pierwszym razem zwraca nienilową wartość {{Code|return wartosc,0}}, a później zwraca wartość {{Code|return nil,0}}. Gdy wartością {{Code|frame}} jest {{Code|nil}}, to funkcja zawsze wraca tą wartość {{Code|return nil,0}}. Powyższy sposób działa również dobrze, gdy zdefiniujemy w parametrach funkcji fałszywą funkcję {{Code|frame.getParent}}.
Gdy funkcja nie jest uruchamiana w ramce lub funkcja {{Code|frame.getParent}} nie jest zdefiniowana, to wtedy funkcja wchodzi zawsze w ten jej krok, jakby {{Code|czy_frame_lub_parent}} było {{Code|false}} według tego powyżej, to wtedy brana jest zmienna {{Code|czy_frame}}, i jaką wartość ona przyjmuje.
Funkcję pisze się według sposobu, którą się wywołuje według:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
local wartosc1=PobierzParametr("nazwa1") or PobierzParametr(1);
local wartosc2=PobierzParametr("nazwa2") or PobierzParametr(2);
local wartosc3=PobierzParametr("nazwa3") or PobierzParametr(3);
</syntaxhighlight>
Na wypadek wartości nietabelowej, tą wartość zapisuje się jako pierwszą w kodzie {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, a dla wartości tabelowych, jaka jest kolejność to jest obojętne, byle by to było sensowne.
Tę funkcję podobnie się wywołuje jak funkcję: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}. Wartością {{Code|frame}} nie musi być tablica ramki tablicy transportu, równie dobrze może być to dowolna tablica lub wartość nietablicowa.
Weźmy ramkę, w której uruchamiamy funkcję ramki:
<syntaxhighlight lang="mediawiki">
{{#invoke:Nazwa modułu|Nazwa funkcji|nazwa1=wartość1|nazwa2=wartość2|wartość3|wartość4|wartość5|wyspecjalizowana=tak}}
</syntaxhighlight>
Ona musi być wywołana z parametrem {{Parametr|wyspecjalizowana|tak}}, jako podpowiedź, że liczą się parametry ramki dziecka, a nie jego rodzica, czyli szablonu. Wtedy funkcję {{Code|Nazwa funkcji}} definiujemy:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,true);
...
end;
</syntaxhighlight>
Wtedy parametr {{Parametr|wyspecjalizowana|tak}} jest ignorowany, a przy wartości {{Code|false}} drugiego parametru funkcji, czyli wywołania: {{Code|local PobierzParametr{{=}}parametry_modul.PobierzParametr(frame,false);}}, już nie, ale nie zawsze. W takim przypadku według powyższego przykładu raz jest brana wartość, jeżeli istnieje, z {{Code|frame.args}}, a jak ona nie istnieje, to wtedy z: {{Code|pf.args}}.
Weźmy inny przypadek:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,false,true);
...
end;
</syntaxhighlight>
Przy tym też parametr: {{Parametr|wyspecjalizowana|tak}}, jest ignorowany, wtedy jest zawsze wybierana do rozważań tablica: {{Code|frame.args}}.
Znów w innym przypadku, gdzie parametr: {{Parametr|wyspecjalizowana|tak}}, jest zawsze rozważany w naszym wypadku:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame,false,false);
...
end;
</syntaxhighlight>
To to wywołanie, wtedy dokładnie działa jak funkcja: {{Code|{{sr|#p.PobierzArgsParametry(frame,...)|p=Parametry}}}}, a zwrócona funkcja: {{Code|PobierzParametr}} pobiera elementy z tak uzyskanej tablicy {{Code|args}} poprzez nią.
W przypadku, gdy {{Code|frame}} nie jest tablicą, wtedy parametry: {{Code|czy_frame_lub_parent}} i {{Code|czy_frame}}, są w takim przypadku zawsze ignorowane, ale muszą być ustawione na wypadek, gdyby do funkcji {{Code|Nazwa funkcji}} wsadzono tablicę, np. z ramki, tzn. tablicę ramki funkcji tablicy transportu.
Najprostszym często ogólnym przykładem, który prawie zawsze jest stosowany:
<syntaxhighlight lang="lua">
local p={};
p["Nazwa funkcji"]=function(frame)
local parametry_modul=require("Module:Parametry");
local PobierzParametr=parametry_modul.PobierzParametr(frame);
...
end;
</syntaxhighlight>
Wtedy parametr: {{Parametr|wyspecjalizowana|tak}}, jest prawie zawsze nieignorowany, ale nie zawsze.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6rwkix2jdaseo9mu69h1bq8jmcnb6ly
Wikibooks:Moduły/Parametry/Tom XVIII
4
63985
553093
553044
2026-08-24T14:45:52Z
Persino
2851
553093
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
; Metafunkcje i metatabele
Rozdział przedstawia metatabele i w niej zdefiniowane metafunkcje.
== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter}} ==
Jest to zdefiniowana metatabelka, którego definicja i przyporządkowanie innej normalnej tablicy, wygląda:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter=parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter;
local tablica_normalna={["nazwa1"]="wartosc1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",};
setmetatable(tablica_normalna,metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
</syntaxhighlight>
=== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index}} ===
Jeżeli przyporządkujemy wartości {{Code|tablica_normalna}} metatabelkę z metafunkcjami, w tym przypadku metafunkcji {{Code|.__index(t,klucz)}}, wtedy możemy pisać wywołanie:
<syntaxhighlight lang="lua">
local wartosc1=tablica_normalna["NAZWA1"];
</syntaxhighlight>
Uzyskaną wartością jest: {{Code|wartość1}}, bo wartość: {{Code|NAZWA1}} jest zamieniana na małe litery w tym wywołaniu, ale powyżej podano wartość {{Code|nazwa1}} w tablicy {{Code|tablica_normalna}}, wtedy obie wartości są sobie równe, a więc uzyskamy taki wynik.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
70wlk48wxeq45co36k2q2bd12036ikd
553094
553093
2026-08-24T14:56:27Z
Persino
2851
553094
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
; Metafunkcje i metatabele
Rozdział przedstawia metatabele i w niej zdefiniowane metafunkcje.
== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter}} ==
Ta metatabelka wykorzystuje tabelki, których klucze się pisane małymi literami, to po przyłączeniu do niej, można pisać ich nazwy dowolnymi literami, dużymi, czy małymi, i tak takie dopasowanie wykryje elementy w niej, czyli się uda, tak się dzieje w odwołaniach do ich wartości. Mimo, że normalnie odnosienie się do ich zawrtości tych kluczy, nazwami o dowolnych nazwach, daje przeważnie wartość {{Code|nil}}, czyli wartość niedopasowania, a z tą metatabelką już nie.
=== Przykład wykorzystania tabelki, z elementami o kluczach pisanych małymi literami, przyłączanej do metatabelki ===
Jest to zdefiniowana metatabelka, którego definicja i przyporządkowanie innej normalnej tablicy, wygląda:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter=parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter;
local tablica_normalna={["nazwa1"]="wartosc1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",};
setmetatable(tablica_normalna,metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
</syntaxhighlight>
=== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index}} ===
Jeżeli przyporządkujemy wartości {{Code|tablica_normalna}} metatabelkę z metafunkcjami, w tym przypadku metafunkcji {{Code|.__index(t,klucz)}}, wtedy możemy pisać wywołanie:
<syntaxhighlight lang="lua">
local wartosc1=tablica_normalna["NAZWA1"];
</syntaxhighlight>
Uzyskaną wartością jest: {{Code|wartość1}}, bo wartość: {{Code|NAZWA1}} jest zamieniana na małe litery w tym wywołaniu, ale powyżej podano wartość {{Code|nazwa1}} w tablicy {{Code|tablica_normalna}}, wtedy obie wartości są sobie równe, a więc uzyskamy taki wynik.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
2iwmy0zy23dwe5w4kalw6p6hoqbdrb3
553095
553094
2026-08-24T15:12:05Z
Persino
2851
/* Przykład wykorzystania tabelki, z elementami o kluczach pisanych małymi literami, przyłączanej do metatabelki */
553095
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|Parametry}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
; Metafunkcje i metatabele
Rozdział przedstawia metatabele i w niej zdefiniowane metafunkcje.
== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter}} ==
Ta metatabelka wykorzystuje tabelki, których klucze się pisane małymi literami, to po przyłączeniu do niej, można pisać ich nazwy dowolnymi literami, dużymi, czy małymi, i tak takie dopasowanie wykryje elementy w niej, czyli się uda, tak się dzieje w odwołaniach do ich wartości. Mimo, że normalnie odnosienie się do ich zawrtości tych kluczy, nazwami o dowolnych nazwach, daje przeważnie wartość {{Code|nil}}, czyli wartość niedopasowania, a z tą metatabelką już nie.
=== Przykład wykorzystania tabelki, z elementami o kluczach pisanych małymi literami, przyłączanej do metatabelki, co na podstawie tego, nieodróżnialność wielkości liter ===
Jest to zdefiniowana metatabelka, którego definicja i przyporządkowanie innej normalnej tablicy, wygląda:
<syntaxhighlight lang="lua">
local parametry_modul=require("Module:Parametry");
local metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter=parametry_modul.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter;
local tablica_normalna={["nazwa1"]="wartosc1",["nazwa2"]="wartość2",["nazwa3"]="wartość3",};
setmetatable(tablica_normalna,metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter);
</syntaxhighlight>
=== {{Code|p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter.__index}} ===
Jeżeli przyporządkujemy wartości {{Code|tablica_normalna}} metatabelkę z metafunkcjami, w tym przypadku metafunkcji {{Code|.__index(t,klucz)}}, wtedy możemy pisać wywołanie:
<syntaxhighlight lang="lua">
local wartosc1=tablica_normalna["NAZWA1"];
</syntaxhighlight>
Uzyskaną wartością jest: {{Code|wartość1}}, bo wartość: {{Code|NAZWA1}} jest zamieniana na małe litery w tym wywołaniu, ale powyżej podano wartość {{Code|nazwa1}} w tablicy {{Code|tablica_normalna}}, wtedy obie wartości są sobie równe, a więc uzyskamy taki wynik.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
72qn60o9cpl6hsjkysngq5n7zdfd97z