Module:Text : Différence entre versions

De Binding of Isaac: Rebirth Wiki
Aller à : navigation, rechercher
(Essai)
(Essai)
Ligne 14 : Ligne 14 :
 
end
 
end
 
end
 
end
--[[else
+
else
 
local nameFound = false  -- To break the two loops
 
local nameFound = false  -- To break the two loops
 
for k, l in pairs( mw.loadData( 'Module:Data' ).name ) do
 
for k, l in pairs( mw.loadData( 'Module:Data' ).name ) do
Ligne 25 : Ligne 25 :
 
end
 
end
 
if nameFound then break end
 
if nameFound then break end
end]]
+
end
 
end
 
end
 
 

Version du 11 octobre 2017 à 15:28

Missing No. Icon.png
Ce module est lié au projet Modèles.
Ne l'utilisez pas sur des pages du wiki non-liées à ce projet tant que celui-ci n'est pas terminé.



local p = {}

function p.link( f )
	local args = p.trimAll( p.getArgs( f ) )
	local name = args.name
	local cleanName = args.name:lower():gsub( '%p', '' ):gsub( '%s', ' ' )
	local displayName = args.name
	
	if args.type then
		for i, j in pairs( mw.loadData( 'Module:Data' ).name[args.type] ) do
			if args.name == i then
				displayName = j
				break
			end
		end
	else
		local nameFound = false  -- To break the two loops
		for k, l in pairs( mw.loadData( 'Module:Data' ).name ) do
			for m, n in pairs( mw.loadData( 'Module:Data' ).name[k] ) do
				if args.name == m then
					displayName = n
					nameFound = true
					break
				end
			end
			if nameFound then break end
		end
	end
	
	if args.data then
		return { clean = displayName }--[[{ name = name, clean = cleanName, disp = displayName }]]
	else
		return '[[' .. name .. '|' .. displayName .. ']]'
	end
end


function p.trimAll( f, toRemove, keepEmptyParams )
	local g = {}
	for index, object in pairs( f ) do
		if type( object ) == 'string' then
			if object ~= nil and mw.text.trim( object ) ~= '' then
				if toRemove then
					g[index] = mw.text.trim( object, toRemove )
				else
					g[index] = mw.text.trim( object )
				end
			end
			if mw.text.trim( object ) == '' and not keepEmptyParams then
				g[index] = nil
			end
		else
			g[index] = object
		end
	end
	return g
end


function p.getArgs( f )
	local args = {}
	if f.args then
		for i, j in pairs( f.args ) do
			args[i] = j
		end
		for k, l in pairs( f:getParent().args ) do
			args[k] = l
		end
	else
		args = f
	end
	return args
end


function p.findNum( f, pattern )
	local g = {}
	local text
	local argsNum = 0
	if type( f ) == 'table' then
		args = p.trimAll( f.args )
		text = mw.text.trim( args[1] )
		pattern = mw.text.trim( args[2] )
	else
		text = f
	end
	for word in string.gmatch( text, pattern ) do
		argsNum = argsNum + 1
	end
	
	local words = mw.text.split( text, pattern )
	
	return table.maxn( words )
end

return p