Preheat your oven to 175°C (350°F).
Grease and flour a 9x5-inch (23cm x 13cm) loaf pan or line it with parchment paper.
In a medium bowl, whisk together the flour, cocoa powder, baking powder, baking soda, and salt. Set aside.
In a large bowl, beat the softened butter and sugar together with an electric mixer on medium speed until light and fluffy, about 3-5 minutes.
Beat in the eggs, one at a time, ensuring each is fully incorporated before adding the next. Stir in the vanilla extract.
Add the dry ingredients in three additions, alternating with the yoghurt and buttermilk. Start and end with the dry mixture. Mix each addition just until combined (don’t over-mix).
Pour half of the batter into the prepared pan.
Break the chocolate into squares, cut it into chunks, or use chocolate chips. Set aside about a quarter for the topping.
Evenly place the squares or sprinkle the chocolate on top of the batter, along with the crushed graham crackers (remember to retain some for the topping), and mini marshmallows.
Top with the remaining batter.
Bake for 50–60 minutes, or until a toothpick inserted into the centre comes out clean. The cake should be well-risen and set.
Scatter a few more mini marshmallows over the top of the cake about 5 minutes before the baking time is up, allowing them to melt without burning.
Let the cake cool in the pan for 10 minutes, then transfer to a wire rack to cool completely.