Module:Sandbox/iantresman/sandbox/titlesubscripts: Difference between revisions
imported>Mr. Stradivarius You would need to do something like this, if I've correctly understood your goals here |
(No difference)
|
Latest revision as of 01:08, 13 December 2013
Documentation for this module may be created at Module:Sandbox/iantresman/sandbox/titlesubscripts/doc
local p = {}
local properties = {
"id",
"interwiki",
"namespace",
"fragment",
"nsText",
"subjectNsText",
"text",
"prefixedText",
"fullText",
"rootText",
"baseText",
"subpageText",
"canTalk",
"exists",
"fileExists",
"isContentPage",
"isExternal",
"isLocal",
"isRedirect",
"isSpecialPage",
"isSubpage",
"isTalkPage",
"contentModel",
"basePageTitle",
"rootPageTitle",
"talkPageTitle",
"subjectPageTitle"
}
local methods = {
-- "isSubpageOf", -- This method is commented out to avoid errors - it expects a table as input, not a string.
"inNamespace",
"inNamespaces",
"hasSubjectNamespace",
"subPageTitle",
"partialUrl",
"fullUrl",
"localUrl",
"canonicalUrl",
-- "getContent" -- Commenting this out as dumping the entire page content in the output is confusing. :) But try uncommenting it and see what happens.
}
local currentTitle = mw.title.getCurrentTitle()
function p.main(frame)
result = ""
for _, property in ipairs(properties) do
result = result .. "\n# " .. property .. ": " .. tostring(currentTitle[property])
end
-- currentTitle[method](currentTitle) works because it emulates Lua's colon syntax. This syntax is often
-- used in implementing Lua's version of object-oriented programming. Take a look at
-- http://www.lua.org/pil/16.html for a good explanation.
for _, method in ipairs(methods) do
result = result .. "\n# " .. method .. ": " .. tostring(currentTitle[method](currentTitle, "Template")) -- "Template" is used to prevent errors when the namespace methods are called.
end
return result
end
return p