Module:RootFinder: Difference between revisions
From The Seven Sages of Rome
Created page with "local p = {} local function get_root_language(language) local parent_prop = "Is Variety Of" local mw_smw = mw.ext.smw while true do local parent = mw_smw.ask{{language, "?" .. parent_prop}} if parent[language] and parent[language][parent_prop] then language = parent[language][parent_prop] else break end end return language end function p.tree(frame) local current_language = mw.title.getCu..." |
No edit summary |
||
| Line 3: | Line 3: | ||
local function get_root_language(language) | local function get_root_language(language) | ||
local parent_prop = "Is Variety Of" | local parent_prop = "Is Variety Of" | ||
while true do | while true do | ||
local | local result = mw.ext.smw.ask{{language, "?" .. parent_prop}} | ||
if | if result and result[language] and result[language][parent_prop] then | ||
language = | language = result[language][parent_prop] | ||
else | else | ||
break | break | ||
Revision as of 10:33, 25 March 2025
Documentation for this module may be created at Module:RootFinder/doc
local p = {}
local function get_root_language(language)
local parent_prop = "Is Variety Of"
while true do
local result = mw.ext.smw.ask{{language, "?" .. parent_prop}}
if result and result[language] and result[language][parent_prop] then
language = result[language][parent_prop]
else
break
end
end
return language
end
function p.tree(frame)
local current_language = mw.title.getCurrentTitle().text
local root_language = get_root_language(current_language)
local query = string.format(
'[[%s]] [[Category:Language]] |format=tree |parent=Is Variety Of |limit=5000',
root_language
)
return frame:preprocess('{{#ask:' .. query .. '}}')
end
return p