Difference between revisions of "Module:HonorTabs"

From Pathfinder Wiki
Line 19: Line 19:
  
 
function prepareAnswerVariants(variants)
 
function prepareAnswerVariants(variants)
t_variants = splitString(variants, ";;")
+
t_variants = explode(";;", variants)
 
result_string = ""
 
result_string = ""
 
for key, value in pairs(t_variants) do
 
for key, value in pairs(t_variants) do
Line 36: Line 36:
 
end
 
end
  
function split(inputstr, sep)
+
-- explode(seperator, string)
+
function explode(seperator,str)
local t={}
+
  local t, ll
for field,s in string.gmatch(inputstr, "([^"..sep.."]*)("..sep.."?)") do
+
  t={}
table.insert(t,field)
+
  ll=0
if s=="" then
+
  if(#p == 1) then
return t
+
      return {str}
end  
+
  end
end  
+
  while true do
 +
      l = string.find(str, seperator, ll, true) -- find the next d in the string
 +
      if l ~= nil then -- if "not not" found then..
 +
        table.insert(t, string.sub(str,ll,l-1)) -- Save it in our array.
 +
        ll = l + 1 -- save just after where we found it for searching next time.
 +
      else
 +
        table.insert(t, string.sub(str,ll)) -- Save what's left in our array.
 +
        break -- Break at end, as it should be, according to the lua manual.
 +
      end
 +
  end
 +
  return t
 
end
 
end
 
  
 
return p
 
return p

Revision as of 21:18, 27 April 2021

Documentation for this module may be created at Module:HonorTabs/doc

local p = {}

function p.hello( frame )
	return "Hello, world!"
end

function p.getLangSuffix( frame )
	return frame:expandTemplate{ title = 'GetLangSuffix' }
end

function p.createAnswerTab( frame )
	if frame.args.answerVariants then
		return "There are answer variants: " .. prepareAnswerVariants(frame.args.answerVariants)
	else
		return "There aren't any answer variants!"
	end
	
end

function prepareAnswerVariants(variants)
	t_variants = explode(";;", variants)
	result_string = ""
	for key, value in pairs(t_variants) do
		result_string = result_string .. " * " .. key .. " -- " .. value
	end
	return result_string
end

function splitString(inputstring, seperator)
	sep=sep or '%s'
	local t={}
	for str in string.gmatch(inputstring, "("..seperator..")") do
		table.insert(t, str)
	end
	return t
end

-- explode(seperator, string)
function explode(seperator,str)
   local t, ll
   t={}
   ll=0
   if(#p == 1) then
      return {str}
   end
   while true do
      l = string.find(str, seperator, ll, true) -- find the next d in the string
      if l ~= nil then -- if "not not" found then..
         table.insert(t, string.sub(str,ll,l-1)) -- Save it in our array.
         ll = l + 1 -- save just after where we found it for searching next time.
      else
         table.insert(t, string.sub(str,ll)) -- Save what's left in our array.
         break -- Break at end, as it should be, according to the lua manual.
      end
   end
   return t
end

return p