Модул:semantcat
Documentation for this module may be created at Модул:semantcat/doc
local export = {}
local u = require("Module:utils")
-- Главная функция, которая вызывается в модуле.
function export.get(frame)
--local lang = frame.args['lang']
--local args = u.clone(frame:getParent().args)
local title = u.get_base()
local first_letter = mw.ustring.sub(title, 1, 1)
local data = mw.loadData("Module:semantcat/data/" .. first_letter);
local parts = mw.text.split(title, '/')
local parts_count = table.getn(parts)
local lang = ''
if parts_count == 2 then
title = parts[1]
lang = parts[2]
elseif parts_count > 2 then
return 'ERROR #1. Слеши хеле зиёд дар номи гурӯҳ'
else
if mw.ustring.sub(title, -10) == ' аз рӯи забонҳо' then
title = mw.ustring.sub(title, 1, -11)
lang = 'all'
end
end
text = ''
local key
if data[title] then
for _, value in pairs(data[title]) do
key = ''
parts = mw.text.split(value, '%|')
if table.getn(parts) > 1 then
value = parts[1]
key = parts[2]
end
text = text .. '* {{semantcat/cat|' .. value .. '|' .. lang
if key ~= '' then
text = text .. '|sortkey=' .. key
end
text = text .. '}}\n'
end
else
text = '<span style="color: red;">Лутфан гурӯҳҳои модариро дар массив дар ин саҳифа илова намоед [[Модул:semantcat/data/' .. first_letter .. ']]</span>'
end
return frame:preprocess(text)
end
-- Генератсияи ҳуҷҷатгузорӣ барои дата-модулҳо
function export.docs(frame)
title = u.get_base()
title = title:gsub("/Ҳуҷҷатҳо$", "")
local first_letter = mw.ustring.sub(title, -1)
data = mw.loadData("Module:semantcat/data/" .. first_letter);
local result = '=== Додаҳои модарӣ барои шаблон ' .. frame:preprocess("{{шаблон|semantcat}}") .. ', буква «' .. first_letter .. '» ===\n'
result = result .. '→ [[:Гурӯҳ:Модулҳо:semantcat|Остальные буквы]]\n'
result = result .. '{| class="prettytable" cellpadding="15" cellspacing="5"\n'
result = result .. '! № || Гурӯҳ || Мафҳумҳои модарӣ (гурӯҳҳои модарӣ) \n'
result = result .. '|-\n'
local i = 0
text = ''
for name, chain in u.spairs(data) do
result = result .. "| align=center | " .. i .. " "
result = result .. "|| [[:Гурӯҳ:" .. name .. "|" .. name .. "]] "
result = result .. "|| "
local j = 0
for _, value in pairs(data[name]) do
key = ''
parts = mw.text.split(value, '%|')
if table.getn(parts) > 1 then
value = parts[1]
key = parts[2]
end
if j > 0 then
result = result .. ', '
end
result = result .. '[[:Гурӯҳ:' .. value .. '|' .. value .. ']]'
if key ~= '' then
result = result .. " ''(" .. key .. ")''"
end
j = j + 1
end
result = result .. ' \n'
result = result .. '|-\n'
i = i + 1
end
result = result .. '|}'
return result
end
return export