Module:If preview/sandbox: Difference between revisions

Content deleted Content added
add pmain back
Undid revision 1246785899 by Awesome Aasim (talk)
 
(48 intermediate revisions by 3 users not shown)
Line 1:
local p = {}
local getArgs = require("Module:Arguments").getArgs
 
local yn = require("Module:Yesno")
--[[
local cfg = mw.loadData('Module:If preview/configuration')
is_preview
p.pvwc = p.pvwc or package.loaded["Module:If preview/preview warning counter"]
 
or require("Module:If preview/preview warning counter")
This function returns a boolean indicating whether the page is a preview.
 
]]
local function is_preview(frame)
local revision_id = frame:preprocess('{{REVISIONID}}')
-- {{REVISIONID}} is usually the empty string when previewed.
-- I don't know why we're checking for nil but hey, maybe someday things
-- would have broken
return revision_id == nil or revision_id == ''
end
 
--[[
Line 20 ⟶ 11:
This function returns either the first argument or second argument passed to
this module, depending on whether the page is being previewed.
 
Usage:
{{#invoke:If preview|main|value_if_preview|value_if_not_preview}}
 
]]
function p.main(frame)
iflocal is_previewargs = getArgs(frame) then
if warning == ''cfg.preview then
return frame.args[1] or ''
else
return frame.args[2] or ''
end
end
Line 36 ⟶ 25:
pmain
 
This function returns the either the first argument or second argument passed to
this module's parent (i.e. template using this module), depending on whether it
is being previewed.
 
Usage:
{{#invoke:If preview|pmain}}
 
]]
function p.pmain(frame)
return p.main(frame:getParent())
end
 
local function warning_text(warning)
return mw.ustring.format(
cfg.warning_infrastructure,
cfg.templatestyles,
warning
)
end
 
function p._warning(args)
local warning = frame.args[1] and args[1]:match('^%s*(.-)%s*$') or ''
if warning == '' then
return warning_text(cfg.missing_warning)
end
if not cfg.preview then return '' end
if yn(args['consolewarning']) then mw.addWarning('[' .. p.pvwc.incr() .. '] ' .. (args[1] or cfg.missing_warning)) end
return warning_text(warning)
end
 
Line 54 ⟶ 61:
up with HTML and some supporting text, depending on whether the page is being previewed.
 
]]
Usage:
local-- function is_previewp.warning(frame)
{{#invoke:If preview|warning|preview_warning_text}}
-- mw.addWarning(frame.args[1] or cfg.missing_warning)
-- return p._warning(frame.args)
-- end
 
--[[
warning, but for pass-through templates like {{preview warning}}
]]
function p.warningpwarning(frame)
iflocal notargs is_preview= getArgs(frame) then return '' end
return p._warning(args)
end
local warning = frame.args[1]:match('^%s*(.-)%s*$') or ''
 
if warning == '' then
--[[
warning = 'The template has no warning text. Please add a warning.'
Does both mw.addWarning and preview warning
end
]]
 
return mw.ustring.format(
function p.warn(text)
'%s<div class="preview-warning"><strong>Preview warning:</strong> %s</div>',
if text == nil or text == "" then return "" end
frame:extensionTag{
mw.addWarning('[' .. p.pvwc.incr() .. '] ' .. text)
name = 'templatestyles', args = { src = 'Module:Preview warning/styles.css' }
return p._warning({text})
},
end
warning
 
)
--[[
Console warning
]]
function p.consoleWarning(frame)
local args = getArgs(frame)
mw.addWarning('[' .. p.pvwc.incr() .. '] ' .. (args[1] or cfg.missing_warning))
return ''
end