To grill the fish, preheat an outdoor grill with citrus wood and highly grease the rack. Position the rack about 20cm/8in over a charcoal fire. To bake the fish, preheat the oven to 180C/160C Fan/Gas 4.
For the fish, combine the mayonnaise, lime juice, salt and pepper in a bowl. Rub the mixture into the fish and leave to marinate at room temperature for 20 minutes.
To prepare the sauce, soak the chillies in hot water to cover for 10 minutes. Drain, put in a blender and purée with the tomatoes, garlic, vinegar, cloves, onion, oregano, thyme, marjoram, cumin and 250ml/9fl oz water. Blend until smooth.
Heat the butter and oil in a small pan and add the purée. When it comes to a boil lower the heat and cook gently for 20 minutes, or until the sauce thickens. Add salt and pepper to taste. Take it off the heat and set aside to cool to room temperature.
To cook the fish on the grill, place the opened fish, skin side down, on the rack for 15-20 minutes, basting regularly with the sauce. Turn the fish over, baste with the melted butter and grill for 10-15 minutes, or until cooked.
To bake the fish, put it on a baking tray and cook for 25-30 minutes, basting regularly with the sauce, then melted butter.
For the salsa, heat a griddle pan and place the sliced pineapple and cook on each side for 1-2 minutes or until bar marks have appeared. Once cooled enough to handle cut into small dice. Mix with the rest of the salsa ingredients in a bowl.
When the fish is done, place the fish on a serving plate or bowl. Put the salsa into a serving bowl and serve with some wedges of lime.