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

local p = {}

function p.Patch(frame)
  local origArgs = {}
  local orig = frame.args.orig or ""
  orig = orig:gsub("<nowiki>(.-)</nowiki>", function(args)
    for k, v in args:gmatch("|%s*(.-)%s*=%s*(.-)%s*|") do
      origArgs[k] = v
    end
    return ""
  end)

  local newArgs = {}
  for k, v in pairs(frame.args) do
    if k ~= "orig" then
      newArgs[k] = v
    end
  end

  -- Merge the old and new arguments
  local mergedArgs = {}
  for k, v in pairs(origArgs) do
    mergedArgs[k] = v
  end
  for k, v in pairs(newArgs) do
    mergedArgs[k] = v
  end

  -- Call the Damage template with the merged arguments
  local damageTemplate = mw.getCurrentFrame():expandTemplate{ title = "Damage", args = mergedArgs }

  return damageTemplate
end

return p