'Special call as we have changed the API for this.
We have two calling conventions:
- The new one, which passes page, context, data
- The deprecated one, which also passes the site (Now accessible via the page)'

def preBuildPage(self, site, page, context, data):

    for plugin in self.plugins:
        new = [page, context, data]
        deprecated = [site, page, context, data]
        arg_lists = dict(((len(l), l) for l in [deprecated, new]))
        try:
            n_args = len(getargspec(plugin.preBuildPage).args)
            arg_list = arg_lists.get(n_args, new)
        except NotImplementedError:
            arg_list = new
        (context, data) = plugin.preBuildPage(*arg_list)
    return (context, data)
