Module:Sandbox/Aseleste/Indexer: Difference between revisions

Content deleted Content added
fix: error
improve: trim
 
(5 intermediate revisions by the same user not shown)
Line 58:
end
end
returnlocal result = key(value(category))
return result
end
return nil
Line 68 ⟶ 69:
local result = {}
for key, value in pairs(frame.args) do
result[mw.text.trim(key)] = mw.text.trim(unstrip_and_strip_nowiki_tags(value))
end
local pframe = frame:getParent()
for key, value in pairs(pframe.args) do
result[mw.text.trim(key)] = mw.text.trim(unstrip_and_strip_nowiki_tags(value))
end
for key, value in pairs(frame.args) do
result[mw.text.trim(key)] = mw.text.trim(unstrip_and_strip_nowiki_tags(value))
end
Line 88 ⟶ 89:
if arg_k:match("^table_") then
local key = arg_k:gsub("table_", "", 1)
local order = key:match("^(%d+)_")
keys[key] = as_key_content_function(arg_v)
local ordered,if order = key:match("^(%d+)_")then
key = key:gsub(order .. "_", "", 1)
if ordered then
local order_list = key_order[order]
if order_roworder_list then
table.insert(order_list, key)
else
Line 98 ⟶ 99:
end
end
keys[key] = as_key_content_function(arg_v)
end
end
-- sort key order
local key_order_list = {}
for order, category in pairs(key_order) do
table.insert(key_order_list, {key=tonumber(order), value=category})
end
table.sort(key_order_list, function(a, b) return a.key < b.key end)
key_order = {}
for _, value in ipairs(key_order_list) do
table.insert(key_order, value.value)
end
return keys, key_order
end
Line 193 ⟶ 207:
 
unstrip_and_strip_nowiki_tags = function(text)
local result = mw.text.trim(mw.text.unstripNoWiki(text)) -- need this variable to only return 1 result
:gsub("<nowiki>", "")
:gsub("</nowiki>", "")