Documentation for this module may be created at Module:API info/main/widget/doc
local infobox_module = require("Module:API_info/util/infobox")
local wowprog_data = mw.loadData("Module:API_info/wowprog/widgets")
local m = {}
local function GetGithubLink(search)
local item = {
icon = "GitHub_Octocat.png",
text = "FrameXML",
url = string.format("https://github.com/Gethe/wow-ui-source/search?q=%s", search),
}
return item
end
local function GetWowprogLink(apiType, widget, method)
local item = {
icon = "Wowprogramming.png",
text = "Wowprogramming",
}
if apiType == "widget" then
if wowprog_data[widget] then
item.url = string.format("https://wowprogramming.com/docs/widgets/%s.html", widget)
end
elseif apiType == "widgetmethod" then
local wowprog_widget = wowprog_data[widget..":"..method]
if wowprog_widget then
-- certain Region api are documented as VisibleRegion
if type(wowprog_widget) == "string" then
widget = wowprog_widget
end
item.url = string.format("https://wowprogramming.com/docs/widgets/%s/%s.html", widget, method)
end
end
if item.url then
return item
end
end
function m.main(f)
local apiType = f.args.t
local pageName = f.args.name
local wowprog_tbl, github_tbl
if apiType == "widget" then
local widget = pageName:match("UIOBJECT (%w+)")
if widget then
github_tbl = GetGithubLink(widget)
wowprog_tbl = GetWowprogLink(apiType, widget)
end
elseif apiType == "widgetmethod" then
local widget, method = pageName:match("API (%w+) (%w+)")
github_tbl = GetGithubLink(method)
wowprog_tbl = GetWowprogLink(apiType, widget, method)
end
local source = {
"! Links",
{github_tbl, wowprog_tbl},
}
return infobox_module:main({}, source)
end
return m