Modül:otomatik kategori
Görünüm
Modül belgelemesi [Oluştur]
local getirDil = require("Modül:diller").getirAsilAdaGore
local getirTema = require("Modül:temalar").getirAsilAdaGore
local ekEkle = require("Modül:tr-araçlar").dilDuzenle
--bu fonksiyon girilen bir yazıda birinci değeri bulup
--onu ikinci değer ile değiştirmeye yarar
local function bulvedeg(yazi, bir, iki)
return mw.ustring.sub( mw.ustring.gsub(yazi, bir, iki), 1, -1 )
end
function saptaTema(sayfa)
local ek = nil
local function dilBul(d, s)
for i=1,5 do
if getirDil(d) then
return d
else
d = d .. (d~="" and " " or "") .. bulvedeg(s, "%s.*", "")
s = bulvedeg(s, "^[^%s]*%s*", "")
end
end
end
--kategorinin dilini saptayalım
--
--burası ilk kontrol
local dilBulma = dilBul("", sayfa)
--eğer hala bir dil bulamadıysak, belki de dil eki vardır?
if not getirDil(dilBulma) then
sayfa2 = bulvedeg(bulvedeg(sayfa, "nd[ea]%s", " "), "d[ea]%s", " ")
dilBulma = dilBul("", sayfa2)
if getirDil(dilBulma) then ek = true end
end
--hataları aştıysak, dil nesnesini çağıralım
local dil = getirDil(dilBulma)
--şimdi de temayı bulalım
--
--şimdi sıra temayı saptamada
dilBulma = dilBulma and bulvedeg(dilBulma, "%-", "%-")
local tema = dil and (ek and bulvedeg(sayfa, ekEkle(dilBulma).."%s", "") or bulvedeg(sayfa, dilBulma.."%s", "")) or ""
if not dil then tema = mw.language.getContentLanguage():lcfirst(sayfa) end
--şablonları ve modülleri istisnası
if tema == "modülleri" or tema == "şablonları" then tema = mw.ustring.sub(tema, 1, -2) end
return (dil and dil:getirKod() or nil), tema
end
function goster(frame, args)
local sayfa = mw.title.getCurrentTitle()
local dil, tema
--{{kategori tema}} şablonu için
if args["şablon"] == "konu" then
args["dil"], args["tema"] = saptaTema(sayfa.text)
--{{kategori dil}} şablonu için
elseif args["şablon"] == "dil" then
args["dil"] = getirDil(sayfa.text):getirKod()
end
return args
end
--deneme çalışması için
function deneme(frame, args)
local sayfa = mw.title.getCurrentTitle()
local dil, tema
if args["şablon"] == "konu" then
args["dil"], args["tema"] = saptaTema(sayfa.text)
end
return args
end
return {goster = goster, deneme = deneme}