Module:Text : Différence entre versions

De Binding of Isaac: Rebirth Wiki
Aller à : navigation, rechercher
(Essai)
(searchData() déplacée)
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
 
function p.link( f )
 
function p.link( f )
 
local args = p.trimAll( p.getArgs( f ) )
 
local args = p.trimAll( p.getArgs( f ) )
local name = args.name
+
local wikiName = require( 'Module:Data' ).searchData{ mainTable='wikiName', typeTable=args.type, value=args.name:gsub( '%s', ' ' ) } or args.name
local cleanName = args.name:lower():gsub( '%p', '' ):gsub( '%s', ' ' )
+
local fileName = wikiName:gsub( '!', '' ) -- Add characters that can not be used in file names
local displayName = args.name
+
local cleanName = wikiName:lower():gsub( '%p', '' )
+
local displayName = require( 'Module:Data' ).searchData{ mainTable='displayName', typeTable=args.type, wikiName } or wikiName
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
 
if args.data then
return { clean = displayName }--[[{ name = name, clean = cleanName, disp = displayName }]]
+
return { wiki = wikiName, file = fileName, clean = cleanName, disp = displayName }
 
else
 
else
return '[[' .. name .. '|' .. displayName .. ']]'
+
return '[[' .. wikiName .. '|' .. displayName .. ']]'
 
end
 
end
 
end
 
end

Version actuelle datée du 31 octobre 2017 à 07:55

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 wikiName = require( 'Module:Data' ).searchData{ mainTable='wikiName', typeTable=args.type, value=args.name:gsub( '%s', ' ' ) } or args.name
	local fileName = wikiName:gsub( '!', '' ) -- Add characters that can not be used in file names
	local cleanName = wikiName:lower():gsub( '%p', '' )
	local displayName = require( 'Module:Data' ).searchData{ mainTable='displayName', typeTable=args.type, wikiName } or wikiName
	
	if args.data then
		return { wiki = wikiName, file = fileName, clean = cleanName, disp = displayName }
	else
		return '[[' .. wikiName .. '|' .. 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