whole_func_string: async function build (dataFilePath, presskit, {
    company = {},
    products = [],
    analytics = ''
  } = {}) {
    const buildFolder = createAndGetBuildFolder()
    const pageFolder = getPageFolder(buildFolder, dataFilePath, presskit.type)
  
    // Create the page folder.
    sfs.createDir(pageFolder)
  
    const htmlFilePath = getHtmlFilePath(pageFolder)
    console.log(`- "${presskit.title}" -> ${chalk.blue(htmlFilePath)}`)
  
    // Templates and images.
    const template = createTemplate(presskit.type, pageFolder)
    const assetsSource = getImagesFolder(dataFilePath)
    const images = getImages(assetsSource)
  
    // Copy images and zips to the page folder.
    const assetsTarget = path.join(pageFolder, imagesFolderName)
    sfs.copyDirContent(assetsSource, assetsTarget)
  
    // Add thumbnails on the screenshot images.
    // Because the thumbnails are not in the `images` object, they won't
    // be added to the zips. Neat.
    if (!config.commands.build.ignoreThumbnails) {
      await createThumbnails(assetsTarget, images.screenshots)
    }
  
    // This must be done after `sfs.copyDirContent`.
    // Otherwise, we might override existing archives.
    exportArchives(images, assetsSource, assetsTarget)
  
    // Apply data to template.
    let html = template({
      presskit: presskit,
      company,
      products,
      images: sortScreenshotsByCategories(images),
      assets: (presskit.type !== 'company' ? '..' : '.'),
      analytics,
  
      // Handlebars can't check for equality, so we provide two
      // variables to differentiate a product and a company sheet.
      isCompany: presskit.type === 'company',
      isProduct: presskit.type === 'product',
  
      // Same to know if a presskit has any screenshots.
      hasScreenshots: images.screenshots && images.screenshots.length > 0,
  
      // Additional build options:
      hamburger: config.commands.build.hamburger,
  
      // Misc.
      buildVersion: packageVersion,
      buildTime: new Date().getTime()
    })
  
    // Export the HTML to a file.
    fs.writeFileSync(htmlFilePath, html)
  
    // And return the relative path from `build/`.
    return path.relative(buildFolder, htmlFilePath)
  }
func_code_string: async function build (dataFilePath, presskit, {
    company = {},
    products = [],
    analytics = ''
  } = {}) {
    const buildFolder = createAndGetBuildFolder()
    const pageFolder = getPageFolder(buildFolder, dataFilePath, presskit.type)
  
    // Create the page folder.
    sfs.createDir(pageFolder)
  
    const htmlFilePath = getHtmlFilePath(pageFolder)
    console.log(`- "${presskit.title}" -> ${chalk.blue(htmlFilePath)}`)
  
    // Templates and images.
    const template = createTemplate(presskit.type, pageFolder)
    const assetsSource = getImagesFolder(dataFilePath)
    const images = getImages(assetsSource)
  
    // Copy images and zips to the page folder.
    const assetsTarget = path.join(pageFolder, imagesFolderName)
    sfs.copyDirContent(assetsSource, assetsTarget)
  
    // Add thumbnails on the screenshot images.
    // Because the thumbnails are not in the `images` object, they won't
    // be added to the zips. Neat.
    if (!config.commands.build.ignoreThumbnails) {
      await createThumbnails(assetsTarget, images.screenshots)
    }
  
    // This must be done after `sfs.copyDirContent`.
    // Otherwise, we might override existing archives.
    exportArchives(images, assetsSource, assetsTarget)
  
    // Apply data to template.
    let html = template({
      presskit: presskit,
      company,
      products,
      images: sortScreenshotsByCategories(images),
      assets: (presskit.type !== 'company' ? '..' : '.'),
      analytics,
  
      // Handlebars can't check for equality, so we provide two
      // variables to differentiate a product and a company sheet.
      isCompany: presskit.type === 'company',
      isProduct: presskit.type === 'product',
  
      // Same to know if a presskit has any screenshots.
      hasScreenshots: images.screenshots && images.screenshots.length > 0,
  
      // Additional build options:
      hamburger: config.commands.build.hamburger,
  
      // Misc.
      buildVersion: packageVersion,
      buildTime: new Date().getTime()
    })
  
    // Export the HTML to a file.
    fs.writeFileSync(htmlFilePath, html)
  
    // And return the relative path from `build/`.
    return path.relative(buildFolder, htmlFilePath)
  }
func_documentation_string: ------------------------------------------------------------- Module. -------------------------------------------------------------