Generates the site with Metalsmith

@returns {Promise}
function generateSite() {
  return new Promise((resolve, reject) => {
    Metalsmith(__dirname)
      .metadata({
        site: {
          title: "Qooxdoo Application Server",
          description: "Mini website used by \"qx serve\"",
          email: "info@qooxdoo.org",
          twitter_username: "qooxdoo",
          github_username: "qooxdoo",
          pages: [ "/", "/about/" ]
        },
        baseurl: "",
        url: "",
        lang: "en",
        partials: {}
      })
      .source('./src')
      .destination('./build')
      .clean(true)
      .use(loadPartials)
      .use(markdown())
      .use(getPages)
      .use(layouts({
        engine: 'dot'
      }))
      .build(function(err) {
        if (err)
          reject(err);
        else
          resolve();
      });
  });
}