ፍልልይ ኣብ መንጎ ክለሳታት «ሞድዩል:Text format»

ካብ ዊኪፐድያ፣ ናጻ ኢንሳይክሎፐድያ
Content deleted Content added
update
No edit summary
መፈለጥታReverted
መስመር 61፦ መስመር 61፦
end
end


function z.inBrackets(text, qualifying)
function z.inBrackets(text, qualifier)
if not text or text == '' then
if not text or text == '' then
return
return
elseif qualifying and qualifying ~= '' then
elseif qualifier and qualifier ~= '' then
return text .. ' (' .. qualifying .. ')'
return text .. ' (' .. qualifier .. ')'
else
else
return text
return text
መስመር 79፦ መስመር 79፦


-- :: Generate a link
-- :: Generate a link
function z.toLink(link, text, qualifying)
function z.toLink(link, text, qualifier)
local result
local result
መስመር 90፦ መስመር 90፦
end
end
if result and qualifying then
if result and qualifier then
return result .. ' <small>(' .. qualifying .. ')</small>'
return result .. ' <small>(' .. qualifier .. ')</small>'
else
else
return result
return result

Revision as of 04:34, 22 ሰነ 2023

Documentation for this module may be created at ሞድዩል:Text format/doc

local z = {}

function z.inItalics(text, ref)
	if ref and text then
		return '<i>' .. text .. '</i>' .. ref
	elseif text then
	    return '<i>' .. text .. '</i>'
	end
end

-- Adapted from [[:en:Module:String2]], function sentence
function z.inUppercase(text)
	if not text or text == '' then
		return text
	end
	
	-- [[hypothesis (scientific method)|hypothesis]]
	
	if text:find("^%[%[[^|]+|[^%]]+%]%]") then
		local b, c = text:find("|%A*%a") 
		return string.sub(text, 1, c-1) .. string.upper(string.sub(text, c, c)) .. string.sub(text, c+1)
	end
	
	local letterpos = text:find('%a')
	if letterpos then
		local first = text:sub(1, letterpos - 1)
		local letter = text:sub(letterpos, letterpos)
		local rest = text:sub(letterpos + 1)
		return first .. string.upper(letter) .. rest
	else
		return text
	end
end

function z.inSmallCaps(text)
	if not text or text == '' then
		return text
	end	
	return '<span style="font-variant:small-caps">' .. text .. '</span>'
end

function z.inMultipleLines(list)
	local result
	local copy={}
	require('Module:Tables').insertElementsWithValue(list, copy)
	
	-- Only return something if there is at least one element
	if copy[1] then
		return table.concat(copy, '<br/>')
	end
end

function z.betweenQuotationMarks(text, ref)
	if not text or text == '' then
		return text
	elseif ref and ref ~='' then
		return '«' .. text .. '»' .. ref
	else 
	    return '«' .. text .. '»'
	end
end

function z.inBrackets(text, qualifier)
	if not text or text == '' then
		return
	elseif qualifier and qualifier ~= '' then
	    return text .. ' (' .. qualifier .. ')'
	else
		return text
	end
end

function z.separatedByComma(list)
	local copy={}
	require('Module:Tables').insertElementsWithValue(list, copy)
	
	return table.concat(copy, '፣ ')
end

-- :: Generate a link
function z.toLink(link, text, qualifier)
	local result
	
	if link and text then
		result = '[[' .. link .. '|' .. text .. ']]'
	elseif link then
		result = '[[' .. link .. ']]'
	else
		result = text
	end
	
	if result and qualifier then
		return result .. ' <small>(' .. qualifier .. ')</small>'
	else
		return result
	end
end

-- Generate a link (extended deployment)
function z.toLink2(link, options)
	if link then
		local label, namespace, size, border, link2, imageFooter, mustExist, onlytext

		if type(options) == 'table' then
			label	= options['label'] or ''
			namespace	= tonumber(options['namespace']) or 0
			size		= options['size'] or '250px'
			border		= options['border']
			link2		= options['link']
			imageFooter	= options['footer']
			mustExist	= options['must exist'] or options['mustExist'] or options['mustexist']
			onlytext	= options['onlytext']
		elseif type(options) == 'string' then
			label = options
		elseif type(options) == 'number' then
			namespace = options
		else
			label = link
			namespace = 0
		end

		local titleObj = mw.title.new(link, namespace) or {}

		local title2Obj = {}
		if link2 then title2Obj= mw.title.new(link2, 0) end

		local result = {}

		table.insert(result, titleObj.fullText)

		if not mustExist and namespace ~= 6 and namespace ~= 14 then
			if label then table.insert(result, label) end
			if qualifier then return '[[' .. prefix .. table.concat(result, '|') .. ']]' .. ' <small>(' .. qualifier .. ')</small>' end
			return '[[' .. table.concat(result, '|') .. ']]'
		end

		if titleObj.exists or titleObj.fileExists then
			-- File:
			if namespace == 6 then
				if onlytext then
					if label then table.insert(result, label) end
					return '[[:' .. table.concat(result, '|') .. ']]'
				end
				
				if size then table.insert(result, size) end
				if border then table.insert(result, 'border') end
				if title2Obj.exists then table.insert(result, 'link=' .. title2Obj.fullText) end
				if label then table.insert(result, label) end
				if imageFooter then return '[[' .. table.concat(result, '|') .. ']]' .. '<br>' .. imageFooter end
				return '[[' .. table.concat(result, '|') .. ']]'
			end
			
			-- Category:
			if namespace == 14 then
				if onlytext then
					if label then table.insert(result, label) end
					return '[[:' .. table.concat(result, '|') .. ']]'
				end
				return '[[' .. titleObj.fullText .. ']]'
			end

			-- The rest
			if label then table.insert(result, label) end
			return '[[' .. table.concat(result, '|') .. ']]'

		end

		return label
	end
end

function z.callFromATemplate(frame)
	local args = frame.args
	
	if args['argument type'] == 'table' then
		local board = {args[2], args[3], args[4]}
		return z[args[1]](board)
	else
		return z[args[1]](args[2], args[3], args[4])
	end
end

return z