Module:If preview: Difference between revisions

From Chalo Chatu, Zambia online encyclopedia
Jump to navigationJump to search
Icem4k (talk | contribs)
m 1 revision imported
 
http://www.chalochatu.org/>MSGJ
requested enhancements by User:Awesome Aasim
Line 1: Line 1:
local p = {}
local p = {}
local getArgs = require("Module:Arguments").getArgs
local yn = require("Module:Yesno")
local cfg = mw.loadData('Module:If preview/configuration')


--[[
--[[
main
main


This function returns the either the first argument or second argument passed to this module, depending on whether it is being previewed.
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)
function p.main(frame)
local result = ''
local args = getArgs(frame)
Preview_mode = frame:preprocess('{{REVISIONID}}'); -- use magic word to get revision id
if cfg.preview then
if not (Preview_mode == nil or Preview_mode == '') then -- if there is a value then this is not a preiview
return args[1] or ''
result = frame.args[2] or '';
else
else
result = frame.args[1] or ''; -- no value (nil or empty string) so this is a preview
return args[2] or ''
end
end
return result
end
end


Line 25: Line 23:
pmain
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 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
Usage:
is being previewed.
{{#invoke:If preview|pmain}}


]]
]]
function p.pmain(frame)
function p.pmain(frame)
return p.main(frame:getParent())
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
if yn(args['consolewarning']) then mw.addWarning(args[1] or cfg.missing_warning) end
return warning_text(warning)
end
end


--[[
--[[
boolean
warning


This function returns the either true or false, depending on whether it is being previewed.
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.
 
]]
-- function p.warning(frame)
-- mw.addWarning(frame.args[1] or cfg.missing_warning)
-- return p._warning(frame.args)
-- end


Usage:
--[[
{{#invoke:If preview|boolean}}
warning, but for pass-through templates like {{preview warning}}
]]
function p.pwarning(frame)
local args = getArgs(frame)
return p._warning(args)
end


--[[
Does both mw.addWarning and preview warning
]]
]]


function p.boolean(frame)
function p.warn(text)
local result = ''
if text == nil or text == "" then return "" end
Preview_mode = frame:preprocess('{{REVISIONID}}'); -- use magic word to get revision id
mw.addWarning(text)
if not (Preview_mode == nil or Preview_mode == '') then -- if there is a value then this is not a preiview
return p._warning({text})
result = false;
end
else
 
result = true; -- no value (nil or empty string) so this is a preview
--[[
end
Console warning
return result
]]
function p.consoleWarning(frame)
local args = getArgs(frame)
mw.addWarning(args[1] or cfg.missing_warning)
return ''
end
end
 
return p
return p

Revision as of 19:58, 9 September 2024

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

local p = {}
local getArgs = require("Module:Arguments").getArgs
local yn = require("Module:Yesno")
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)
	local args = getArgs(frame)
	if cfg.preview then
		return args[1] or ''
	else
		return 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
	
	if yn(args['consolewarning']) then mw.addWarning(args[1] or cfg.missing_warning) 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.

]]
-- function p.warning(frame)
-- 	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.pwarning(frame)
	local args = getArgs(frame)
	return p._warning(args)
end

--[[
Does both mw.addWarning and preview warning
]]

function p.warn(text)
	if text == nil or text == "" then return "" end
	mw.addWarning(text)
	return p._warning({text})
end

--[[
Console warning
]]
function p.consoleWarning(frame)
	local args = getArgs(frame)
	mw.addWarning(args[1] or cfg.missing_warning)
	return ''
end

return p