docs: function initBook(rootFolder) {
      var extension = '.md';
  
      return fs.mkdirp(rootFolder)
  
      // Parse the summary and readme
      .then(function() {
          var fs = createNodeFS(rootFolder);
          var book = Book.createForFS(fs);
  
          return Parse.parseReadme(book)
  
          // Setup default readme if doesn't found one
          .fail(function() {
              var readmeFile = File.createWithFilepath('README' + extension);
              var readme = Readme.create(readmeFile);
              return book.setReadme(readme);
          });
      })
      .then(Parse.parseSummary)
  
      .then(function(book) {
          var logger = book.getLogger();
          var summary = book.getSummary();
          var summaryFile = summary.getFile();
          var summaryFilename = summaryFile.getPath() || ('SUMMARY' + extension);
  
          var articles = summary.getArticlesAsList();
  
          // Write pages
          return Promise.forEach(articles, function(article) {
              var articlePath = article.getPath();
              var filePath = articlePath? path.join(rootFolder, articlePath) : null;
              if (!filePath) {
                  return;
              }
  
              return fs.assertFile(filePath, function() {
                  return fs.ensureFile(filePath)
                  .then(function() {
                      logger.info.ln('create', article.getPath());
                      return fs.writeFile(filePath, '# ' + article.getTitle() + '\n\n');
                  });
              });
          })
  
          // Write summary
          .then(function() {
              var filePath = path.join(rootFolder, summaryFilename);
  
              return fs.ensureFile(filePath)
              .then(function() {
                  logger.info.ln('create ' + path.basename(filePath));
                  return fs.writeFile(filePath, summary.toText(extension));
              });
          })
  
          // Log end
          .then(function() {
              logger.info.ln('initialization is finished');
          });
      });
  }