Jump to content

Module:Transcludable section

Permanently protected module
From Wikipedia, the free encyclopedia

-- Module to create selectively transcluded sections using syntax which is
-- compatible with [[Module:Sports table]] and [[Module:Sports results]]

require('strict')

local p = {}

-- Main function
function p.main(frame)
	-- Declare locals
	local tsection = frame:getParent().args['transcludesection'] or frame:getParent().args['section'] or ''
	local bsection = frame.args['section'] or frame.args['1'] or ''
	local editlink = frame.args['edit'] or ''

	-- Exit early if we are using section transclusion for a different section
	if( tsection ~= '' and bsection ~= '' ) then
		if( tsection ~= bsection ) then
			return ''
		end
	end
	
	local text = frame.args['text'] or ''
	
	-- Rewrite anchor links
	local baselink = frame:getParent():getTitle()
	if mw.title.getCurrentTitle().fullText == baselink then	baselink = '' end
	if baselink ~= '' then
		text = mw.ustring.gsub(text, '(%[%[)(#[^%[%]]*%|)', '%1' .. baselink .. '%2')
	end

	-- Get VTE button text (but only for non-empty text)
	local VTE_text = ''
	if (text ~= '' and editlink ~= '' and baselink ~= '') then
		VTE_text = frame:expandTemplate{ title = 'navbar', args = { mini=1, style='float:right', brackets=1, ':' .. baselink} }
	end
	return VTE_text .. text
end
 
return p