Module:Sandbox/pppery/hook page

local p = {} local function versiontonumber(version) if #version == 6 then return versiontonumber(version:sub(0,4)) + tonumber(version:sub(6))/1000 end local num = tonumber(version) if #version == 3 then return 1 + (num-1)/10 else return num end end function p._main(name) local frame = mw.getCurrentFrame local hookPage, hookText hookPage = mw.title.new("Manual:Hooks/" .. name) hookText = hookPage:getContent if hookText == nil then error("Bogus hook: " .. name) end local summary = hookText:match("\n%s*|%s*summary%s*=%s*([^\n]*)\n") local introduced = hookText:match("\n%s*|%s*version%s*=%s*([^|\n]-)%.?0?\n") local removed = hookText:match("\n%s*|%s*removed%s*=%s*([^|\n]-)%.?0?\n") local deprecated = hookText:match("\n%s*|%s*deprecated%s*=%s*([^|\n]-)%.?0?\n") if summary then local prefix = "" if removed and removed ~= "" then local num = versiontonumber(removed) if num and num < 1.27 then return "" end prefix = " " elseif deprecated and deprecated ~= "" then prefix = " " end local verstring = tostring(versiontonumber(introduced)) while #verstring < 5 do verstring = verstring .. "0"		end local output = "|-\n|data-sort-value=\"" .. verstring .. "\"| " .. introduced output = output .. "\n| \n|" .. prefix .. summary return output else error("Could not find summary for " .. name) end end function p.main(frame) return p._main(frame.args.name) end return p;