Module:Mainspace editnotice
Appearance
(Redirected from Module:Magic editintro)
Script error: No such module "High-use". Lua error in package.lua at line 80: module 'Module:Yesno' not found. This module is for use in Template:Editnotices/Namespace/Main. It conditionally includes other editnotice templates.
It has testcases at Module:Mainspace editnotice/testcases.
Usage[edit source]
{{#invoke:Mainspace editnotice|main}}
No parameters are required. For testing what editnotice would be generated for a specific page, you can pass |page=
.
local Arguments = require('Module:Arguments')
local Disambiguation = require('Module:Disambiguation')
local TfaTitle = require('Module:TFA title')
local p = {}
p.main = function(frame)
local args = Arguments.getArgs(frame)
return p.core(args.page and mw.title.new(args.page) or mw.title.getCurrentTitle(), frame)
end
local notices = {
draft_notice = function (page, ctx)
if page.exists
and (page.isRedirect or ctx.isDisambigPage)
and mw.title.new('Draft:'..page.fullText).exists then
return "Draft at"
end
end,
blp_notice = function(page)
local content = page:getContent()
local living = "%[%[%s*[Cc]ategory:%s*[Ll]iving[ _]people%s*%]%]"
local possiblyLiving = "%[%[%s*[Cc]ategory:%s*[Pp]ossibly[ _]living[ _]people%s*%]%]"
if content and (content:find(living) or content:find(possiblyLiving)) then
return "BLP editnotice"
end
end,
disambig_notice = function(page, ctx)
if ctx.isDisambigPage then
return "Disambig editnotice"
end
end,
tfa_notice = function(page)
if TfaTitle.today_title() == page.text then
return "TFA editnotice"
end
end,
refideas_notice = function(page)
local talkContent = page.talkPageTitle:getContent()
if talkContent and talkContent:match('%{%{[rR]ef ?idea') and not talkContent:match("Refideas%-nonotice") then
return "Refideas editnotice"
end
end,
}
p.core = function(page, frame)
-- Context object to store values that are expensive to compute and required
-- in multiple places
local context = {
isDisambigPage = Disambiguation._isDisambiguationPage(page.fullText)
}
local text = ''
for _, getNotice in pairs(notices) do
local template = getNotice(page, context)
text = text .. (template and ('<div class="editnotice-link" style="clear: both; float: right; margin: 0px 0.8em; padding: 0; line-height: 1em;"> <small>[[Template:'..template..'|'..template..']]</small> </div>' .. frame:expandTemplate{ title = template }) or '')
end
return text
end
return p