Dynamically add an attr_accessor and set it for each metadata pair, unless we already have that variable.
Removed the site object and grab it via the Site.instance method again. Remove the metadata variable.
Removed the site from the initialize method.
Switched back to the instance method. Don't pass the site object to the templates, pages and posts. Set the public path, prepare for copying its contents.
Removed the site variable. Updated rendering to pass the site and a 'this' object.