U ovoj kuharici se objašnjava kako napraviti predložak i odgovarajući lua modul za stvaranje predložaka s poveznicama na niz stranica pri čemu se crvene poveznice stvaraju s dodatnim parametrima koje omogućavaju da se tek otvorena stranica stvari s gotovim tipskim člankom.
Stvaranje tipskog članka
Prvi korak je stvaranje tipskog članka, primjer: Wikipedija:Tipski članci/Naselje u Sloveniji
Pri tome uzmete neki primjer članka i sve promjenjive dijelove zamijenite sa parametrima $1 .. $n. Ako želite da sam tipski članak izgleda uredno, možete dodati:
- <noinclude>dio wiki koda koji će se vidjeti samo u tipskom članku</noinclude> i
- <includeonly>dio wiki koda koji se neće vidjeti u tipskom članku, ali će biti uključen kod stvaranja konkretnog članka</includeonly>
{{Infookvir naselje u Sloveniji
| ime = $1
| širina-stupnjevi = <noinclude>46</noinclude>
| širina-minute = <noinclude>18</noinclude>
| dužina-stupnjevi = <noinclude>14</noinclude>
| dužina-minute = <noinclude>56</noinclude>
| pokrajina = [[$2|$3]]
| regija = [[$4 (regija)|$4]]
| općina = <includeonly>[[$5|$6]]</includeonly><noinclude>[[Općina Nazarje|Nazarje]]</noinclude>
| površina_ukupna =
| visina =
| stan_2002 =
| poštanski_broj =
}}
'''<includeonly>$1</includeonly><noinclude>Dobletina</noinclude>''' je naselje u [[Slovenija|slovenskoj]] općini <includeonly>[[$5|$6]]</includeonly><noinclude>[[Općina Nazarje|Nazarje]]</noinclude> ([[Slovenske pokrajine|pokrajina]] [[$2|$3]], [[Statističke regije Slovenije|statistička regija]] [[$4 (regija)|$4]]).
Stvaranje predloška koji poziva Lua modul
Primjer je {{Wp/Naselje u Sloveniji}}. Predložak ne radi ništa drugo osim što prenosi parametre na lua modul. Evo wiki koda:
<includeonly>{{#Invoke:Wp/Naselje u Sloveniji|main}}</includeonly><noinclude>
{{Lua|Wp/Naselje u Sloveniji}}
[[Kategorija:Wikipedijini predlošci]]</noinclude>
Sve što u predlošku treba napraviti je pozvati istoimeni lua modul (točnije njegovu funkciju "main"), ovako: {{#Invoke:Wp/Naselje u Sloveniji|main}}. Nema posebnog razloga zašto bi se modul zvao isto kao i predložak, osim što je tako preglednije.
Ostatak u ovom primjeru je:
- {{Lua|Wp/Naselje u Sloveniji}} - dokumentiranje činjenice da koristimo ovaj modul. Ovo je potrebno da saznamo gdje se modul koristi. Za razliku od predložaka, korištenje modula se ne može otkriti pomoću Posebno:Što_vodi_ovamo, pa se ovim umjetno stvara poveznica na modul što pomaže otkriti gdje je modul korišten.
- [[Kategorija:Wikipedijini predlošci]] - kategoriziranje, vjerojatno će kasnije biti promijenjena kategorija, kada bude još ovakvih predložaka
Stvaranje Lua modula
Treći korak je stvaranje Lua modula koji će stvoriti pojedinačne "pametne" poveznice na članke. Primjer: Modul:Wp/Naselje u Sloveniji
Fiskni dio #1
local p = {}
local list = require("Module:List")
local wpPreload = require('Module:WpPreload')
function p.main(frame)
Stvaranje varijabli iz parametara predloška
Kad se određeni predložak poziva s parametrima, npr
- {{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}}
isti ti paramteri su dostupni i u Lua modulu. Za početak, sve te parametre prebacimo u varijable sa smislenim imenima da bi kod bio razumljiviji:
local naseljeLink = mw.getCurrentFrame():getParent().args[1]
local naselje = mw.getCurrentFrame():getParent().args[2]
local pokrajinaLink = mw.getCurrentFrame():getParent().args[3]
local pokrajina = mw.getCurrentFrame():getParent().args[4]
local regija = mw.getCurrentFrame():getParent().args[5]
local opcinaLink = mw.getCurrentFrame():getParent().args[6]
local opcina = mw.getCurrentFrame():getParent().args[7]
Zatim se treba pozvati funkcija wpPreload.napraviWp(), a prije toga je potrebno stvoriti array args. Vrijednosti pojedinog elementa args moraju odgovarati parametrima $1 .. $n kako su korišteni u tipskom članku. Za stvaranje args su korištene sve varijable osim naseljelink, ova varijabla ide zasebno u pozivu wpPreload.napraviWp(). Evo kako kreiramo array args (na kraju pojedinog retka je isječak iz tipskog članka:
local args = {}
args[1] = mw.uri.encode(naselje) -- => '''$1''' je naselje u [[Slovenija|slovenskoj]] općini
args[2] = mw.uri.encode(pokrajinaLink) -- => [[Slovenske pokrajine|pokrajina]] [[$2|$3]]
args[3] = mw.uri.encode(pokrajina) -- => [[Slovenske pokrajine|pokrajina]] [[$2|$3]]
args[4] = mw.uri.encode(regija) -- => [[$4 (regija)|$4]]
args[5] = mw.uri.encode(opcinaLink) -- => u [[Slovenija|slovenskoj]] općini [[$5|$6]]
args[6] = mw.uri.encode(opcina) -- => u [[Slovenija|slovenskoj]] općini [[$5|$6]]
Zatim pozivamo wpPreload.napraviWp() sa sljedećim parametrima:
- frame (fiksno)
- naseljeLink (fiksno)
- naselje (fiksno)
- tipski članak - kopirajte njegovu adresu zajedno sa svim donjim crtama
- args(fiksno)
- predloženi sažetak
local wikiCode = wpPreload.napraviWp(frame, naseljeLink, naselje, 'Tipski_članci/Naselje_u_Sloveniji', args, 'Stvoren novi članak')
Fiskni dio #3
return wikiCode end return p
Stvaranje skupnog predloška
Na kraju je potrebno napraviti skupni predložak u kojem će biti "pametne" crvene wikipoveznice (koji će nakon stvaranja stranica postati najobičnije plave).
Predložak će se iz skupnog predloška pozivati ovako:
- {{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}}
Pri tome su prva 2 parametra (|Bistra (Črna na Koroškem, Slovenija)|Bistra|) nužna jer se radi o naslovu i tekstu wikipoveznice, bez njih ne možemo ni stvoriti poveznice, a ostali ovise o tome kakav smo tipski članak napravili.
Evo primjer predloška {{Črna na Koroškem}}:
{{Navigacija
| naziv = Črna na Koroškem
| naslov = [[Općina Črna na Koroškem|Naselja u sastavu Općine Črna na Koroškem]]
| slika =
| popis1 = <!--
-->{{wp/Naselje u Sloveniji|Bistra (Črna na Koroškem, Slovenija)|Bistra|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Črna na Koroškem|Črna na Koroškem|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Javorje (Črna na Koroškem, Slovenija)|Javorje|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Jazbina (Črna na Koroškem, Slovenija)|Jazbina|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Koprivna (Črna na Koroškem, Slovenija)|Koprivna|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Ludranski Vrh|Ludranski Vrh|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Podpeca|Podpeca|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Topla (Črna na Koroškem, Slovenija)|Topla|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}} • <!--
-->{{wp/Naselje u Sloveniji|Žerjav (Črna na Koroškem, Slovenija)|Žerjav|Koruška (Slovenija)|Koruška|Koruška|Općina Črna na Koroškem|Črna na Koroškem}}
}}<noinclude>
[[Kategorija:Skupni predlošci naselja po općinama u Sloveniji]]
</noinclude>
Radi se o običnom skupnom navigacijskom predlošku, a jedina razlika je što su obične wikipoveznice zamijenjene sa pozivom {{wp/Naselje u Sloveniji}}