Module:Dochead: Difference between revisions
implement headers; no categorizing code yet |
No edit summary |
||
| Line 1: | Line 1: | ||
-- This module follows [[User:Ganaram inukshuk/Provisional style guide for Lua]] | -- This module follows [[User:Ganaram inukshuk/Provisional style guide for Lua]] | ||
local getArgs = require("Module:Arguments").getArgs | local getArgs = require("Module:Arguments").getArgs | ||
local p = {} | local p = {} | ||
| Line 22: | Line 20: | ||
-- Detect whether a page exists, where pagename is "Namespace:Title" | -- Detect whether a page exists, where pagename is "Namespace:Title" | ||
function p.page_exists(fullpagename) | function p.page_exists(fullpagename) | ||
local title = mw.title.new(fullpagename) | |||
local title = mw.title.new( | |||
if title and title.exists then | if title and title.exists then | ||
| Line 30: | Line 27: | ||
return false | return false | ||
end | end | ||
end | |||
function p.categorize(namespace, pagename, is_lua_based_template) | |||
local is_lua_based_template = is_lua_based_template or false | |||
if pagename:sub(-4) == "/doc" then | |||
-- Page is a documentation subpage | |||
if namespace == "Template" then | |||
return "[[Category:Template documentation]]" | |||
elseif namespace == "Module" then | |||
return "[[Category:Module documentation]]" | |||
end | |||
else | |||
-- Page is either a template or module page | |||
if namespace == "Template" then | |||
return "[[Category:Templates]]" .. (is_lua_based_template and [[Category:Lua-based templates]] or "") | |||
elseif namespace == "Module" then | |||
return "[[Category:Lua modules]]" | |||
end | |||
end | |||
return "" | |||
end | end | ||
| Line 36: | Line 55: | ||
local pagename = args["pagename" ] | local pagename = args["pagename" ] | ||
local header = args["header" ] or "none" | local header = args["header" ] or "none" | ||
local corr_template = args["temp" | local corr_template = args["temp"] or "Template:" .. pagename | ||
local corr_module = args["mod" | local corr_module = args["mod" ] or "Module:" .. pagename | ||
-- If header is none, don't bother. | -- If header is none, don't bother. | ||
if header == "none" then return "" end | if header == "none" then return "" .. p.categorize(namespace, pagename) end | ||
local result = "" | local result = "" | ||
| Line 46: | Line 65: | ||
if p.page_exists(corr_template) then | if p.page_exists(corr_template) then | ||
if header == "library" or header == "metamodule" then header = "" end | |||
if header == "dualuse" then | if header == "dualuse" then | ||
result = string.format("This module may be invoked by templates by using its corresponding [[%s | template]], or used directly from other modules.", corr_template) | result = string.format("This module may be invoked by templates by using its corresponding [[%s | template]], or used directly from other modules.", corr_template) | ||
| Line 56: | Line 77: | ||
end | end | ||
else | else | ||
if header == "dualuse" or header == "metatemplate" or header == "noinvoke" then header = "" end | |||
if header == "library" or header == "metamodule" then | if header == "library" or header == "metamodule" then | ||
result = string.format("This module primarily serves as a library for other modules.") | result = string.format("This module primarily serves as a library for other modules.") | ||
| Line 62: | Line 85: | ||
end | end | ||
end | end | ||
result = result .. p.categorize(namespace, pagename, p.page_exists(corr_template)) | |||
elseif namespace == "Template" then | elseif namespace == "Template" then | ||
| Line 79: | Line 104: | ||
end | end | ||
end | end | ||
result = result .. p.categorize(namespace, pagename, p.page_exists(corr_module)) | |||
else | else | ||
| Line 94: | Line 121: | ||
args["namespace"] = args["namespace"] or title.nsText | args["namespace"] = args["namespace"] or title.nsText | ||
args["pagename"] | args["pagename" ] = args["pagename" ] or title.text | ||
args["header"] = args["header"] or "noinvoke" | args["header" ] = args["header" ] or "noinvoke" | ||
args["temp"] = args["temp"] or args["pagename"] | |||
args["mod" ] = args["mod" ] or args["pagename"] | |||
return p._dochead(args) | |||
return args[" | --return args["pagename"] | ||
end | end | ||
return p | return p | ||