Module:If preview: Difference between revisions

From Roses, Tulips, & Liberty
Content added Content deleted
(parent.args for pmain, fix boolean function name)
m (8 revisions imported from wikipedia:Module:If_preview)
 
(5 intermediate revisions by 4 users not shown)
Line 1:
local p = {}
 
local cfg = mw.loadData('Module:If preview/configuration')
 
--[[
main
 
This function returns the either the first argument or second argument passed to this module, depending on whether it is being previewed.
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)
if cfg.preview then
local result = ''
result =return frame.args[21] or '';
Preview_mode = frame:preprocess('{{REVISIONID}}'); -- use magic word to get revision id
if not (Preview_mode == nil or Preview_mode == '') then -- if there is a value then this is not a preiview
result = frame.args[2] or '';
else
result =return frame.args[12] or ''; -- no value (nil or empty string) so this is a preview
end
return result
end
 
Line 25 ⟶ 21:
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.
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)
local parent =return p.main(frame.:getParent(frame))
end
local result = ''
 
Preview_mode = frame:preprocess('{{REVISIONID}}'); -- use magic word to get revision id
 
if not (Preview_mode == nil or Preview_mode == '') then -- if there is a value then this is not a preiview
local function warning_text(warning)
result = parent.args[2]
return mw.ustring.format(
else
cfg.warning_infrastructure,
result = parent.args[1]; -- no value (nil or empty string) so this is a preview
cfg.templatestyles,
warning
)
end
 
function p.boolean_warning(frameargs)
local warning = args[1] and args[1]:match('^%s*(.-)%s*$') or ''
if warning == '' then
return warning_text(cfg.missing_warning)
end
return result
if not cfg.preview then return '' end
return warning_text(warning)
end
 
--[[
warning
boolean
 
This function returns thea either"preview true or falsewarning", dependingwhich onis whetherthe it isfirst beingargument previewed.marked
up with HTML and some supporting text, depending on whether the page is being previewed.
 
disabled since we'll implement the template version in general
Usage:
{{#invoke:If preview|boolean}}
 
]]
--function p.warning(frame)
-- return p._warning(frame.args)
--end
 
--[[
function p.boolean(frame)
warning, but for pass-through templates like {{preview warning}}
local result = ''
]]
Preview_mode = frame:preprocess('{{REVISIONID}}'); -- use magic word to get revision id
function p.pwarning(frame)
if not (Preview_mode == nil or Preview_mode == '') then -- if there is a value then this is not a preiview
return p._warning(frame:getParent().args)
result = false;
else
result = true; -- no value (nil or empty string) so this is a preview
end
return result
end
 
return p

Latest revision as of 16:14, 4 November 2022

Documentation for this module may be created at Module:If preview/doc

local p = {}

local cfg = mw.loadData('Module:If preview/configuration')

--[[
main

This function returns either the first argument or second argument passed to
this module, depending on whether the page is being previewed.

]]
function p.main(frame)
	if cfg.preview then
		return frame.args[1] or ''
	else
		return frame.args[2] or ''
	end
end

--[[
pmain

This function returns 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.

]]
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 = 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
	
	return warning_text(warning)
end

--[[
warning

This function returns a "preview warning", which is the first argument marked
up with HTML and some supporting text, depending on whether the page is being previewed.

disabled since we'll implement the template version in general

]]
--function p.warning(frame)
--	return p._warning(frame.args)
--end

--[[
warning, but for pass-through templates like {{preview warning}}
]]
function p.pwarning(frame)
	return p._warning(frame:getParent().args)
end

return p