Mixture handles this in a slightly more elegant and flexible way via models and collections.
http://mixture.io https://github.com/teammixture/mixture-collections
As mentioned, Middleman can use JSON or YML. http://middlemanapp.com/advanced/local-data/