Modülün alt sayfaları:
local cikart = {}
local Tema = {}
function Tema:getirAsilAd()
return mw.getContentLanguage():ucfirst(self._asilAd)
end
function Tema:getirKategori()
if self._rawData.kategori then
return self._rawData.kategori
else
return self._asilAd
end
end
function Tema:getirBaslikAdi()
return self._rawData.baslikAdi
end
function Tema:getirEbeveynler()
ebeveynler = self._rawData.ebeveynler
return ebeveynler or {}
end
function Tema:direktMi()
return self._rawData.direkt
end
function Tema:varmiDilKategorisi()
if self._rawData.dil_kategorisi == false then
return nil
else
return true
end
end
function Tema:getirAciklama(ekliDil)
if self._rawData.aciklama then
if ekliDil then
return ekliDil .. " " .. self._rawData.aciklama
else
return mw.getContentLanguage():ucfirst(self._rawData.aciklama)
end
else
return ""
end
end
function Tema:getirYanlisYazimlar()
return self._rawData.yanlisYazimlar
end
function Tema:getirTip()
return self._rawData.tip or self._tip or nil
end
function Tema:getirOrtak()
if self._rawData.ortak == false then
return false
else
return true
end
end
function Tema:getirAnahtar()
return self._rawData.anahtar or false
end
function Tema:getirGizli()
return self._rawData.gizli or false
end
function Tema:getirVeriModulu()
return "Modül:temalar/veri" .. (self._tip == "" and "" or "/") .. self._tip
end
function Tema:getirSiraAnahtari()
return self._rawData.sira_anahtari or mw.getContentLanguage():ucfirst(self._asilAd)
end
function Tema:getirKategoriAdi(ekliDil)
if self._asilAd == "ana kategoriler" or self._asilAd == "tüm diller" or not ekliDil then
return mw.getContentLanguage():ucfirst(self._asilAd)
else
return mw.getContentLanguage():ucfirst(ekliDil .. " " .. self._asilAd)
end
end
function Tema:toJSON()
local ret = {
ebeveynler = self:getirEbeveynler(),
alt = self:getirAlt(),
aciklama = self:getirAciklama(),
direkt = self:direktMi(),
tip = _tip,
asilAd = _asilAd,
sira_anahtari = self:getirSiraAnahtari(),
dil_kategorisi = self:varmiDilKategorisi(),
}
return require("Modül:JSON").toJSON(ret)
end
function Tema:getRawData()
return self._rawData
end
Tema.__index = Tema
function cikart.olusturNesne(asilAd, veri, tip)
return veri and setmetatable({ _rawData = veri, _asilAd = asilAd, _tip = tip }, Tema) or nil
end
function cikart.getirBaslikAdinaGore(baslik)
tablo = {}
for ad, veri in pairs(mw.loadData("Modül:temalar/veri/söz türü")) do
if veri.baslikAdi then
tablo = ad
end
end
local asilAd = tablo
return cikart.olusturNesne(asilAd, require("Modül:temalar/veri/söz türü"), "söz türü")
end
function cikart.getirAsilAdaGore(asilAd, anah)
local altsayfalar = {
"",
"konu",
"grup",
"şablon",
"söz türü",
"söz biçim"
}
local verimodulu
for _, altsayfa in ipairs(altsayfalar) do
verimodulu = "Modül:temalar/veri" .. (altsayfa == "" and "" or "/") .. altsayfa
tip = altsayfa
if require(verimodulu) then
break
end
end
local tablo = mw.loadData(verimodulu)
if mw.ustring.find(asilAd, "Dillerine göre") then
tablo = { = {
ebeveynler = {mw.ustring.gsub( asilAd, "Dillerine göre ", "" )},
sira_anahtari = "+"
}}
end
if mw.ustring.find(asilAd, "son ekiyle oluşmuş sözcükler") then
tablo = { = {
ebeveynler = {"son eklerine göre sözcükler"},
sira_anahtari = mw.ustring.sub( asilAd, 2, -1 ),
ortak = false
}}
end
if mw.ustring.find(asilAd, "ön ekiyle oluşmuş sözcükler") then
tablo = { = {
ebeveynler = {"ön eklerine göre sözcükler"},
sira_anahtari = mw.ustring.sub( asilAd, 1, 1 ),
ortak = false
}}
end
if mw.ustring.len( asilAd ) == 1 then
tablo = { = {
ebeveynler = {"bireysel karakterlerine göre sözcükler"},
}}
end
return cikart.olusturNesne(asilAd, tablo, tip)
end
function cikart.split_labels_on_comma(term)
if term:find("") then
local put = require("Modül:parse utilities")
local segments = put.parse_multi_delimiter_balanced_segment_run(term, {{"<", ">"}, {""}})
local comma_separated_groups = put.split_alternating_runs_on_comma(segments)
for i, group in ipairs(comma_separated_groups) do
comma_separated_groups = table.concat(group)
end
return comma_separated_groups
elseif term:find(",%s") then
-- This won't split on comma+whitespace.
return require("Modül:parse utilities").split_on_comma(term)
elseif term:find(",") then
return require("Modül:string araçları").split(term, ",")
else
return {term}
end
end
return cikart