public function generate(Project $project)
    {
        $generated = [];

        if (! $uses = $this->file->getData('use')) {
            return $this->file;
        }

        foreach ($uses as $use) {
            if (! $data = $this->file->getData($use.'_items')) {
                continue;
            }

            $taxonomyItems = array_keys($data);

            foreach ($data as $taxonomyName => $files) {
                $newFile = clone $this->file;
                $newFile->setData([
                    'generator' => array_filter($this->file->getData('generator'), function ($value) {
                        return $value !== 'TaxonomyArchiveGenerator';
                    }),
                    'taxonomyName' => $taxonomyName,
                    $use.'_items'  => $files,
                    $use => $taxonomyItems,
                ]);

                $newFile->setUid($newFile->getUid().'_'.$taxonomyName);
                $newFile->setFilename($taxonomyName);
                array_push($generated, $newFile);
                unset($newFile);
            }
        }

        return $generated;
    }