protected function collectTaxonomiesFromPages()
    {
        /* @var $page Page */
        foreach ($this->pageCollection as $page) {
            foreach (array_keys($this->config->get('site.taxonomies')) as $plural) {
                if (isset($page[$plural])) {
                    // converts a list to an array if necessary
                    if (!is_array($page[$plural])) {
                        $page->setVariable($plural, [$page[$plural]]);
                    }
                    foreach ($page[$plural] as $term) {
                        // adds each terms to the vocabulary collection
                        $this->taxonomies->get($plural)
                            ->add(new Term($term));
                        // adds each pages to the term collection
                        $this->taxonomies
                            ->get($plural)
                            ->get($term)
                            ->add($page);
                    }
                }
            }
        }
    }