Modul:Namespace detect
Dokumentacija modula
| Lua logo | Koristi Lua modul: |
Modul dopušta ispis teksta ovisno o imenskom prostoru u kojem je modul pozvan.
Modul sadrži Lua implementaciju predloška {{namespace detect}}.
Korištenje[uredi]
{{#invoke: Namespace detect | main
| main = <!-- tekst koji se vraća ako je modul pozvan u glavnom imenskom prostoru -->
| talk = <!-- tekst koji se vraća ako je modul pozvan u bilo kojem
razgovornom prostoru (Razgovor sa suradnikom, Razgovor o predlošku, itd) -->
<!-- tekst koji se vraća za pojedine imenske prostore -->
| main =
| suradnik =
| wikipedija =
| datoteka =
| mediawiki =
| predložak =
| pomoć =
| kategorija =
| portal =
| dodatak =
| nacrt =
| modul =
| gadget =
| gadget definition =
| other = <!-- tekst koji se vraća za ostale (nenavedene) imenske prostore -->
| demopage = <!-- stranica za koju pronalazimo imenski postor, ako nije trenutna stranica -->
| demospace = <!-- imenski prostor za koji pozivamo predložak (zaobilazi stvarni prostor) -->
| subjectns = <!-- ako je postavljeno na "yes", tretira razgovorne stranice kao dio imenskog prostora sadržaja
(Razgovor o predlošku = Predložak) -->
}}
Imenski prostori[uredi]
Moguće vrijednosti za imenske prostore sadržaja su sljedeće:
Script error: The function "table" does not exist.
Funkcija tablice[uredi]
Koristite sljedeći kod za prikaz tablice imenskih prostora:
{{#invoke:Namespace detect|table|talk=yes}}
Parametar |talk=yes pokazuje i imenski prostor razgovora.
Konfiguracijska datoteka modula nalazi se na Modul:Namespace detect/config.
Tehničke napomene[uredi]
Modul koristi podatkovni obrazac na Module:Namespace detect/data. Ta se stranica učitava funkcijom mw.loadData, što joj omogućava procesiranje jednom po sadržajnoj stranici umjesto jednom po pozivu modula (#invoke). Time se poboljšavaju preformanse rada modula.
-- Modul:Namespace_detect
-- Minimalna, stabilna verzija kompatibilna s MediaWiki
local p = {}
local getArgs = require('Module:Arguments').getArgs
-- Mapiranje namespace ID → ime
local ns = mw.site.namespaces
-- Funkcija: vrati namespace ID
function p._namespaceId(title)
if not title then return nil end
local t = mw.title.new(title)
if not t then return nil end
return t.namespace
end
-- Funkcija: vrati namespace ime (lokalizirano)
function p._namespaceName(title)
local id = p._namespaceId(title)
if not id then return nil end
return ns[id].name
end
-- Funkcija: vrati "glavni", "datoteka", "predložak", itd.
function p._namespaceCanonical(title)
local id = p._namespaceId(title)
if not id then return nil end
return ns[id].canonicalName
end
-- Funkcija: provjera je li stranica u glavnom imenskom prostoru
function p._isMain(title)
return p._namespaceId(title) == 0
end
-- Funkcija: provjera je li stranica u imenskom prostoru predložaka
function p._isTemplate(title)
return p._namespaceId(title) == 10
end
-- Funkcija: provjera je li stranica u imenskom prostoru modula
function p._isModule(title)
return p._namespaceId(title) == 828
end
-- Glavna funkcija za #invoke
function p.namespace(frame)
local args = getArgs(frame)
local title = args[1] or mw.title.getCurrentTitle().fullText
return p._namespaceName(title) or ''
end
return p