Permanently protected module

Module:Ruby

From Yugipedia
Revision as of 21:12, 29 April 2018 by Becasita (talk | contribs) (Make "args" a local variable. Convert indentation to tabs. Wrap in <pre> tags, to avoid template expansion.)
Jump to: navigation, search
-- <pre>
local p = {}

function p.split( frame )
	--
	-- implements {{Ruby/split}}
	--
	local args
	if frame == mw.getCurrentFrame() then
		args = frame:getParent().args
	else
		args = frame
	end
	if not args[1] then
		return
	end

	args[1] = mw.text.trim( args[1] )

	if not mw.ustring.find( args[1], '<ruby' ) then
		return args[1]
	end

	args[2] = args[2] and ( mw.text.trim( args[2] ) == 'base' and '' or mw.text.trim( args[2] ) ) or ''

	local first, parts, match
	first = mw.ustring.match( args[1], '^(.-)<ruby' ) or ''
	parts = mw.text.split( args[1], '<ruby' )
	match = args[2] == '' and '<rb[^>]*>(.-)</rb>' or '<rt[^>]*>(.-)</rt>'

	for i = 1, #parts do
		parts[i] = ( mw.ustring.match( parts[i], match ) or '' )
				.. ( mw.ustring.match( parts[i], '</ruby>(.*)$' ) or '' )
	end

	return first, table.concat( parts, '' )
end

return p
-- </pre>