@@ -131,8 +131,8 @@  | 
                                                    ||
| 131 | 131 | $layouts = [  | 
                                                        
| 132 | 132 | // "taxonomy/$term.$format.$ext", // e.g.: taxonomy/velo.html.twig  | 
                                                        
| 133 | 133 | // "taxonomy/$singular.$format.$ext", // e.g.: taxonomy/tag.html.twig  | 
                                                        
| 134 | - "_default/term.$format.$ext", // e.g.: _default/term.html.twig  | 
                                                        |
| 135 | - "_default/list.$format.$ext", // e.g.: _default/list.html.twig  | 
                                                        |
| 134 | + "_default/term.$format.$ext", // e.g.: _default/term.html.twig  | 
                                                        |
| 135 | + "_default/list.$format.$ext", // e.g.: _default/list.html.twig  | 
                                                        |
| 136 | 136 | ];  | 
                                                        
| 137 | 137 |                  if ($page->hasVariable('term')) { | 
                                                        
| 138 | 138 |                      $layouts = array_merge(["taxonomy/{$page->getVariable('term')}.$format.$ext"], $layouts); | 
                                                        
@@ -60,7 +60,7 @@  | 
                                                    ||
| 60 | 60 | /**  | 
                                                        
| 61 | 61 |       * {@inheritdoc} | 
                                                        
| 62 | 62 | */  | 
                                                        
| 63 | - public function log($level, string|\Stringable $message, array $context = []): void  | 
                                                        |
| 63 | + public function log($level, string | \Stringable $message, array $context = []): void  | 
                                                        |
| 64 | 64 |      { | 
                                                        
| 65 | 65 | $output = $this->output;  | 
                                                        
| 66 | 66 |          $output->getFormatter()->setStyle('text', new OutputFormatterStyle('white')); | 
                                                        
@@ -141,7 +141,7 @@  | 
                                                    ||
| 141 | 141 | /**  | 
                                                        
| 142 | 142 | * Adds navigation (next and prev) to section subpages.  | 
                                                        
| 143 | 143 | */  | 
                                                        
| 144 | - protected function addNavigationLinks(PagesCollection $pages, string|null $sortBy = null, bool $circular = false): void  | 
                                                        |
| 144 | + protected function addNavigationLinks(PagesCollection $pages, string | null $sortBy = null, bool $circular = false): void  | 
                                                        |
| 145 | 145 |      { | 
                                                        
| 146 | 146 | $pagesAsArray = $pages->toArray();  | 
                                                        
| 147 | 147 |          if ($sortBy === null || $sortBy == 'date' || $sortBy == 'updated') { | 
                                                        
@@ -184,7 +184,7 @@  | 
                                                    ||
| 184 | 184 | /**  | 
                                                        
| 185 | 185 | * Returns the property value(s) of an output format.  | 
                                                        
| 186 | 186 | */  | 
                                                        
| 187 | - public function getOutputProperty(string $name, string $property): string|array|null  | 
                                                        |
| 187 | + public function getOutputProperty(string $name, string $property): string | array | null  | 
                                                        |
| 188 | 188 |      { | 
                                                        
| 189 | 189 | return $this->config->getOutputFormatProperty($name, $property);  | 
                                                        
| 190 | 190 | }  | 
                                                        
@@ -46,7 +46,7 @@  | 
                                                    ||
| 46 | 46 | /**  | 
                                                        
| 47 | 47 |       * {@inheritdoc} | 
                                                        
| 48 | 48 | */  | 
                                                        
| 49 | - public function log($level, string|\Stringable $message, array $context = []): void  | 
                                                        |
| 49 | + public function log($level, string | \Stringable $message, array $context = []): void  | 
                                                        |
| 50 | 50 |      { | 
                                                        
| 51 | 51 |          if (!isset($this->verbosityLevelMap[$level])) { | 
                                                        
| 52 | 52 |              throw new InvalidArgumentException(\sprintf('The log level "%s" does not exist.', $level)); | 
                                                        
@@ -83,81 +83,81 @@  | 
                                                    ||
| 83 | 83 | ],  | 
                                                        
| 84 | 84 | 'output' => [  | 
                                                        
| 85 | 85 | 'formats' => [  | 
                                                        
| 86 | - [ // e.g.: blog/post-1/index.html  | 
                                                        |
| 86 | + [// e.g.: blog/post-1/index.html  | 
                                                        |
| 87 | 87 | 'name' => 'html',  | 
                                                        
| 88 | 88 | 'mediatype' => 'text/html',  | 
                                                        
| 89 | 89 | 'filename' => 'index',  | 
                                                        
| 90 | 90 | 'extension' => 'html',  | 
                                                        
| 91 | 91 | ],  | 
                                                        
| 92 | - [ // e.g.: blog/atom.xml  | 
                                                        |
| 92 | + [// e.g.: blog/atom.xml  | 
                                                        |
| 93 | 93 | 'name' => 'atom',  | 
                                                        
| 94 | 94 | 'mediatype' => 'application/atom+xml',  | 
                                                        
| 95 | 95 | 'filename' => 'atom',  | 
                                                        
| 96 | 96 | 'extension' => 'xml',  | 
                                                        
| 97 | 97 | 'exclude' => ['redirect', 'paginated'],  | 
                                                        
| 98 | 98 | ],  | 
                                                        
| 99 | - [ // e.g.: blog/rss.xml  | 
                                                        |
| 99 | + [// e.g.: blog/rss.xml  | 
                                                        |
| 100 | 100 | 'name' => 'rss',  | 
                                                        
| 101 | 101 | 'mediatype' => 'application/rss+xml',  | 
                                                        
| 102 | 102 | 'filename' => 'rss',  | 
                                                        
| 103 | 103 | 'extension' => 'xml',  | 
                                                        
| 104 | 104 | 'exclude' => ['redirect', 'paginated'],  | 
                                                        
| 105 | 105 | ],  | 
                                                        
| 106 | - [ // e.g.: blog.json  | 
                                                        |
| 106 | + [// e.g.: blog.json  | 
                                                        |
| 107 | 107 | 'name' => 'json',  | 
                                                        
| 108 | 108 | 'mediatype' => 'application/json',  | 
                                                        
| 109 | 109 | 'extension' => 'json',  | 
                                                        
| 110 | 110 | 'exclude' => ['redirect'],  | 
                                                        
| 111 | 111 | ],  | 
                                                        
| 112 | - [ // e.g.: blog.xml  | 
                                                        |
| 112 | + [// e.g.: blog.xml  | 
                                                        |
| 113 | 113 | 'name' => 'xml',  | 
                                                        
| 114 | 114 | 'mediatype' => 'application/xml',  | 
                                                        
| 115 | 115 | 'extension' => 'xml',  | 
                                                        
| 116 | 116 | 'exclude' => ['redirect'],  | 
                                                        
| 117 | 117 | ],  | 
                                                        
| 118 | - [ // e.g.: robots.txt  | 
                                                        |
| 118 | + [// e.g.: robots.txt  | 
                                                        |
| 119 | 119 | 'name' => 'txt',  | 
                                                        
| 120 | 120 | 'mediatype' => 'text/plain',  | 
                                                        
| 121 | 121 | 'extension' => 'txt',  | 
                                                        
| 122 | 122 | 'exclude' => ['redirect'],  | 
                                                        
| 123 | 123 | ],  | 
                                                        
| 124 | - [ // e.g.: blog/post-1/amp/index.html  | 
                                                        |
| 124 | + [// e.g.: blog/post-1/amp/index.html  | 
                                                        |
| 125 | 125 | 'name' => 'amp',  | 
                                                        
| 126 | 126 | 'mediatype' => 'text/html',  | 
                                                        
| 127 | 127 | 'subpath' => 'amp',  | 
                                                        
| 128 | 128 | 'filename' => 'index',  | 
                                                        
| 129 | 129 | 'extension' => 'html',  | 
                                                        
| 130 | 130 | ],  | 
                                                        
| 131 | - [ // e.g.: sw.js  | 
                                                        |
| 131 | + [// e.g.: sw.js  | 
                                                        |
| 132 | 132 | 'name' => 'js',  | 
                                                        
| 133 | 133 | 'mediatype' => 'application/javascript',  | 
                                                        
| 134 | 134 | 'extension' => 'js',  | 
                                                        
| 135 | 135 | ],  | 
                                                        
| 136 | - [ // e.g.: manifest.webmanifest  | 
                                                        |
| 136 | + [// e.g.: manifest.webmanifest  | 
                                                        |
| 137 | 137 | 'name' => 'webmanifest',  | 
                                                        
| 138 | 138 | 'mediatype' => 'application/manifest+json',  | 
                                                        
| 139 | 139 | 'extension' => 'webmanifest',  | 
                                                        
| 140 | 140 | ],  | 
                                                        
| 141 | - [ // e.g.: atom.xsl  | 
                                                        |
| 141 | + [// e.g.: atom.xsl  | 
                                                        |
| 142 | 142 | 'name' => 'xsl',  | 
                                                        
| 143 | 143 | 'mediatype' => 'application/xml',  | 
                                                        
| 144 | 144 | 'extension' => 'xsl',  | 
                                                        
| 145 | 145 | ],  | 
                                                        
| 146 | - [ // e.g.: blog/feed.json  | 
                                                        |
| 146 | + [// e.g.: blog/feed.json  | 
                                                        |
| 147 | 147 | 'name' => 'jsonfeed',  | 
                                                        
| 148 | 148 | 'mediatype' => 'application/json',  | 
                                                        
| 149 | 149 | 'filename' => 'feed',  | 
                                                        
| 150 | 150 | 'extension' => 'json',  | 
                                                        
| 151 | 151 | 'exclude' => ['redirect', 'paginated'],  | 
                                                        
| 152 | 152 | ],  | 
                                                        
| 153 | - [ // e.g.: video/embed.html  | 
                                                        |
| 153 | + [// e.g.: video/embed.html  | 
                                                        |
| 154 | 154 | 'name' => 'iframe',  | 
                                                        
| 155 | 155 | 'mediatype' => 'text/html',  | 
                                                        
| 156 | 156 | 'filename' => 'embed',  | 
                                                        
| 157 | 157 | 'extension' => 'html',  | 
                                                        
| 158 | 158 | 'exclude' => ['redirect', 'paginated'],  | 
                                                        
| 159 | 159 | ],  | 
                                                        
| 160 | - [ // e.g.: video/embed.json  | 
                                                        |
| 160 | + [// e.g.: video/embed.json  | 
                                                        |
| 161 | 161 | 'name' => 'oembed',  | 
                                                        
| 162 | 162 | 'mediatype' => 'application/json+oembed',  | 
                                                        
| 163 | 163 | 'filename' => 'embed',  | 
                                                        
@@ -55,7 +55,7 @@ discard block  | 
                                                    ||
| 55 | 55 | * desc_title: false|true  | 
                                                        
| 56 | 56 | * reverse: false|true  | 
                                                        
| 57 | 57 | */  | 
                                                        
| 58 | - public function sortBy(array|string|null $options): self  | 
                                                        |
| 58 | + public function sortBy(array | string | null $options): self  | 
                                                        |
| 59 | 59 |      { | 
                                                        
| 60 | 60 | $sortBy = \is_string($options) ? $options : $options['variable'] ?? 'date';  | 
                                                        
| 61 | 61 |          $sortMethod = \sprintf('sortBy%s', ucfirst(str_replace('updated', 'date', $sortBy))); | 
                                                        
@@ -69,7 +69,7 @@ discard block  | 
                                                    ||
| 69 | 69 | /**  | 
                                                        
| 70 | 70 | * Sorts pages by date (or 'updated'): the most recent first.  | 
                                                        
| 71 | 71 | */  | 
                                                        
| 72 | - public function sortByDate(array|string|null $options = null): self  | 
                                                        |
| 72 | + public function sortByDate(array | string | null $options = null): self  | 
                                                        |
| 73 | 73 |      { | 
                                                        
| 74 | 74 | $opt = [];  | 
                                                        
| 75 | 75 | // backward compatibility (i.e. $options = 'updated')  | 
                                                        
@@ -103,7 +103,7 @@ discard block  | 
                                                    ||
| 103 | 103 | /**  | 
                                                        
| 104 | 104 | * Sorts pages by title (natural sort).  | 
                                                        
| 105 | 105 | */  | 
                                                        
| 106 | - public function sortByTitle(array|string|null $options = null): self  | 
                                                        |
| 106 | + public function sortByTitle(array | string | null $options = null): self  | 
                                                        |
| 107 | 107 |      { | 
                                                        
| 108 | 108 | $opt = [];  | 
                                                        
| 109 | 109 | // options  | 
                                                        
@@ -117,7 +117,7 @@ discard block  | 
                                                    ||
| 117 | 117 | /**  | 
                                                        
| 118 | 118 | * Sorts by weight (the heaviest first).  | 
                                                        
| 119 | 119 | */  | 
                                                        
| 120 | - public function sortByWeight(array|string|null $options = null): self  | 
                                                        |
| 120 | + public function sortByWeight(array | string | null $options = null): self  | 
                                                        |
| 121 | 121 |      { | 
                                                        
| 122 | 122 | $opt = [];  | 
                                                        
| 123 | 123 | // options  | 
                                                        
@@ -282,7 +282,7 @@ discard block  | 
                                                    ||
| 282 | 282 | *  | 
                                                        
| 283 | 283 | * @return Asset  | 
                                                        
| 284 | 284 | */  | 
                                                        
| 285 | - public function asset($path, array|null $options = null): Asset  | 
                                                        |
| 285 | + public function asset($path, array | null $options = null): Asset  | 
                                                        |
| 286 | 286 |      { | 
                                                        
| 287 | 287 |          if (!\is_string($path) && !\is_array($path)) { | 
                                                        
| 288 | 288 |              throw new RuntimeException(\sprintf('Argument of "%s()" must a string or an array.', \Cecil\Util::formatMethodName(__METHOD__))); | 
                                                        
@@ -933,7 +933,7 @@ discard block  | 
                                                    ||
| 933 | 933 | /**  | 
                                                        
| 934 | 934 | * Hashing an object, an array or a string (with algo, md5 by default).  | 
                                                        
| 935 | 935 | */  | 
                                                        
| 936 | - public function hash(object|array|string $data, $algo = 'md5'): string  | 
                                                        |
| 936 | + public function hash(object | array | string $data, $algo = 'md5'): string  | 
                                                        |
| 937 | 937 |      { | 
                                                        
| 938 | 938 |          switch (\gettype($data)) { | 
                                                        
| 939 | 939 | case 'object':  | 
                                                        
@@ -53,8 +53,8 @@  | 
                                                    ||
| 53 | 53 | |
| 54 | 54 | // handles options  | 
                                                        
| 55 | 55 | $canonical = null; // if true prefix url with baseurl config  | 
                                                        
| 56 | - $format = null; // output format  | 
                                                        |
| 57 | - $language = null; // force language  | 
                                                        |
| 56 | + $format = null; // output format  | 
                                                        |
| 57 | + $language = null; // force language  | 
                                                        |
| 58 | 58 | extract(\is_array($options) ? $options : [], EXTR_IF_EXISTS);  | 
                                                        
| 59 | 59 | |
| 60 | 60 | // canonical URL?  |