模組:Category tree/charactercat
此模塊由{{charactercat}}
調用。
local export = {}
-- Category object
local Category = {}
Category.__index = Category
function Category.new_main(frame)
local pagename = mw.title.getCurrentTitle().text
local initial, character, langName, ending = mw.ustring.match(pagename, "^(.+)「(.)」的(.+)(詞條?)$")
local lang = require("Module:languages").getByCanonicalName(langName) or error('頁面標題中的語言名稱"' .. langName .. '"無效。')
return Category.new{
lang = lang,
initial = initial,
ending = ending,
label = character,
}
end
function Category.new(info)
local validKeys = {
lang = true,
initial = true,
ending = true,
label = true,
}
for key, val in pairs(info) do
if not validKeys[key] then
error("參數\"" .. key .. "\"無效。")
end
end
local self = setmetatable({}, Category)
self._info = info
if self._info.lang then
self._lang = self._info.lang
self._info.lang = nil
else
error("No language code or language object was given to the function Category.new.")
end
return self
end
export.new = Category.new
export.new_main = Category.new_main
function Category:getInfo()
return self._info
end
function Category:getBreadcrumbName()
return self._info.label
end
function Category:getDataModule()
return "Module:category tree/hanjicat"
end
function Category:canBeEmpty()
return false
end
function Category:isHidden()
return false
end
function Category:getCategoryName()
return self._info.initial .. "「" .. self._info.label .. "」" .. "的" .. self._lang:getCanonicalName() .. self._info.ending
end
function Category:getDescription()
return "本分類列出含有漢字「[[" .. self._info.label .. "]]」的" .. self._lang:getCanonicalName() .. "詞彙。"
end
function Category:getParents()
return {
{
name = require("Module:category tree/poscatboiler")
.new {
code = self._info.code or self._lang:getCode(),
label = "按漢字分類的",
},
sort = self._lang:makeSortKey(self._info.label)
}
}
end
function Category:getChildren()
return nil
end
function Category:getUmbrella()
return nil
end
return export