diff --git a/psalm-baseline.xml b/psalm-baseline.xml index a9f442dc678..c72ff287169 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,1489 +1,2097 @@ - - - - $description - - - BuildRssFeedCommand - BuildRssFeedCommand - BuildRssFeedCommand - BuildRssFeedCommand - BuildRssFeedCommand - BuildRssFeedCommand - - - - - $description - - - BuildSearchCommand - BuildSearchCommand - BuildSearchCommand - BuildSearchCommand - BuildSearchCommand - BuildSearchCommand - - - - - - environment - - - $description - - - $service - BuildSiteCommand - BuildSiteCommand - BuildSiteCommand - BuildSiteCommand - BuildSiteCommand - BuildSiteCommand - - - - - $description - - - BuildSitemapCommand - BuildSitemapCommand - BuildSitemapCommand - BuildSitemapCommand - BuildSitemapCommand - BuildSitemapCommand - - - - - config('hyde.source_root', '') - - - $description - - - $this->argument('name') - config('hyde.source_root', '') - config('hyde.source_root', '') - - - ChangeSourceDirectoryCommand - ChangeSourceDirectoryCommand - ChangeSourceDirectoryCommand - ChangeSourceDirectoryCommand - ChangeSourceDirectoryCommand - ChangeSourceDirectoryCommand - - - - - $feature - - - app('env') - app('git.version') - - - $description - - - config('hyde.features') - - - DebugCommand - DebugCommand - DebugCommand - DebugCommand - DebugCommand - DebugCommand - - - - - - string - - - - $description - - - $this->option('type') - - - $this->option('force') ?? false - - - $force - $pageClass - $selectedType - $title - MakePageCommand - MakePageCommand - MakePageCommand - MakePageCommand - MakePageCommand - MakePageCommand - - - $this->getQualifiedPageType() - - - - - - $author - $category - $description - - - $author - $category - $description - - - string - - - - $description - - - $this->option('force') - - - $this->argument('title') - - - MakePostCommand - MakePostCommand - MakePostCommand - MakePostCommand - MakePostCommand - MakePostCommand - - - - - $hidden - - - PackageDiscoverCommand - PackageDiscoverCommand - PackageDiscoverCommand - PackageDiscoverCommand - PackageDiscoverCommand - - - - - $this->argument('homepage') ?? $this->parseChoiceIntoKey($this->promptForHomepage()) - - - string - string - - - map - map - - - $description - - - PublishHomepageCommand - PublishHomepageCommand - PublishHomepageCommand - PublishHomepageCommand - PublishHomepageCommand - PublishHomepageCommand - - - - - - $value - $value - - - $description - - - - - PublishViewsCommand - PublishViewsCommand - PublishViewsCommand - PublishViewsCommand - PublishViewsCommand - PublishViewsCommand - - - $value - - - - - $description - - - $this->argument('path') - - - $this->argument('path') - - - $path - RebuildStaticSiteCommand - RebuildStaticSiteCommand - RebuildStaticSiteCommand - RebuildStaticSiteCommand - RebuildStaticSiteCommand - RebuildStaticSiteCommand - - - - - $description - - - RouteListCommand - RouteListCommand - RouteListCommand - RouteListCommand - RouteListCommand - RouteListCommand - - - - - $this->option('port') ?: config('hyde.server.port', 8080) - - - environment - - - $description - - - $this->option('host') - - - ServeCommand - ServeCommand - ServeCommand - ServeCommand - ServeCommand - ServeCommand - - - - - $description - - - PublishConfigsCommand - PublishConfigsCommand - PublishConfigsCommand - PublishConfigsCommand - PublishConfigsCommand - PublishConfigsCommand - - - - - $description - - - ValidateCommand - ValidateCommand - ValidateCommand - ValidateCommand - ValidateCommand - ValidateCommand - ValidateCommand - - - - - PostAuthor::all() - - - \Illuminate\Support\Collection<\Hyde\Framework\Features\Blogging\Models\PostAuthor> - - - \Illuminate\Support\Collection<\Hyde\Framework\Features\Blogging\Models\PostAuthor> - - - \Illuminate\Support\Collection<\Hyde\Framework\Features\Blogging\Models\PostAuthor> - - - - - array<string, bool> - - - - array<string, bool> - - - - - self::kernel()->pathToAbsolute(self::relativePath($path)) - - - string - - - \Illuminate\Support\Collection<string> - - - \Illuminate\Filesystem\Filesystem - - - File::getFacadeRoot() - - - \Illuminate\Support\Collection<string> - self::kernel()->filesystem()->smartGlob($pattern, $flags) - - - - - \Hyde\Foundation\Kernel\RouteCollection<\Hyde\Support\Models\Route> - - - - - ?string - ?string - ?string - - - config('hyde.language') - config('hyde.name') - config('hyde.url') - - - - - Application - Application - Application - Application - Application - Application - Application - - - - - (new static())->setKernel($kernel)->runDiscovery() - - - static - - - $kernel - - - new static() - - - - - array<class-string<\Hyde\Foundation\Concerns\HydeExtension>> - array<class-string<\Hyde\Pages\Concerns\HydePage>> - - - - - FileCollection - - - (string) $filepath - - - $this->getAllSourceFiles()->where(fn (SourceFile $file): bool => $file->model === $pageClass) - \Hyde\Foundation\Kernel\FileCollection<\Hyde\Support\Filesystem\MediaFile> - \Hyde\Foundation\Kernel\FileCollection<\Hyde\Support\Filesystem\SourceFile> - \Hyde\Foundation\Kernel\FileCollection<\Hyde\Support\Filesystem\SourceFile> - \Hyde\Foundation\Kernel\FileCollection<\Hyde\Support\Filesystem\SourceFile> - - - class-string<\Hyde\Foundation\Concerns\HydeExtension> - - - - - $model - $model - - - $this->pathToAbsolute($path) - - - string - - - $p - $p - - - map - - - $p - $p - - - - - $files - $pages - $routes - - - - - config('hyde.url') - - - - - $pageClass::parse($basename) - - - string<\Hyde\Pages\Concerns\HydePage> - - - \Illuminate\Support\Collection<\Hyde\Pages\Concerns\HydePage> - - - \Illuminate\Support\Collection<\Hyde\Pages\Concerns\HydePage> - - - each - filter - - - HydePage - - - $this->items[$sourcePath] ?? throw new FileNotFoundException($sourcePath.' in page collection') - - - PageCollection - - - class-string<\Hyde\Foundation\Concerns\HydeExtension> - - - - - each - filter - - - RouteCollection - - - class-string<\Hyde\Foundation\Concerns\HydeExtension> - - - - - static::SEARCH - static::SEARCH - - - $array[static::getValueWithType(trim(trim($pair[0]), "'"))] - - - $array[static::getValueWithType(trim(trim($pair[0]), "'"))] - - - strpos($key, '=') - - - strpos($key, '=') - - - $matter - - - new static($contents) - - - - - $date - $identifier - - - - - strpos($html, '<p>[[END_TOC]]') - - - - - $this->matter - - - - - new $pageClass($this->identifier) - - - new $pageClass($this->identifier) - - - BaseMarkdownPage - HydePage|BladePage|BaseMarkdownPage - - - - - - $value - - - $key - - - $value - - - ?bool - - - - - new $extensionClassName() - - - $extensionClassName - config('markdown.config', []) - config('markdown.enable_blade', false) - config('markdown.enable_blade', false) - config('markdown.features.codeblock_filepaths', true) - - - $extensionClassName - - - config('markdown.extensions', []) - - - addExtension - - - - - $location - $location - config('view.paths', []) - - - $location - $location - - - $class - $class - - - - - $this->matter('author') - $this->matter('date') - - - ?string - string - - - $this->matter('category') - $this->matter('description') ?? $this->getTruncatedMarkdown($this->markdown->body()) - - - $pageData->markdown - - - - - array{pageClass: string, identifier: string, sourcePath: string, outputPath: string, routeKey: string} - - - - - $this->markdown ?? false - - - $value - - - - - $this->matter('image') - $this->matter('image') - $this->matter('image.path') - - - ?string - ?string - ?string - ?string - ?string - ?string - ?string - string - - - $this->matter('image') - $this->matter('image.authorUrl') - $this->matter('image.authorName') - $this->matter('image.copyright') - $this->matter('image.description') - $this->matter('image.licenseName') - $this->matter('image.licenseNameUrl') - $this->matter('image.title') - $this->matter('image.url') - - - (string) $data['source'] - - - new static($matter) - - - - - ?string - string - - - $this->matter('canonicalUrl') - - - - - $class - - - $this->matter('navigation.visible') - config('docs.sidebar_order', []) - config('hyde.navigation.exclude', ['404']) - - - ?bool - ?int - ?int - ?string - ?string - ?string - ?string - string - - - config("hyde.navigation.order.$this->routeKey") - config('hyde.navigation.subdirectories', 'hidden') - - - - - $data['name'] ?? null - $data['website'] ?? null - config('hyde.authors', []) - - - string - - - $data['username'] ?? $data['name'] ?? 'Guest' - - - static - static::all()->firstWhere('username', $username) ?? static::create($username) - - - new static($username, $name, $website) - - - - - getExecutionTime - - - $this->exitCode - - - ?int - - - $output - - - $exception->getCode() - - - BuildTask - BuildTask - - - - - - - - GenerateBuildManifest - GenerateBuildManifest - GenerateBuildManifest - - - - - GenerateRssFeed - GenerateRssFeed - GenerateRssFeed - - - - - GenerateSearch - GenerateSearch - GenerateSearch - - - - - GenerateSitemap - GenerateSitemap - GenerateSitemap - - - - - DataCollections<\Hyde\Markdown\Models\MarkdownDocument> - - - DataCollections<\Hyde\Markdown\Models\MarkdownDocument> - - - DataCollections<\Hyde\Markdown\Models\MarkdownDocument> - - - - - new self($page) - - - - $config - - - string - - - - static - - - - render - - - - - map - - - - - $metadata - - - $global->$type - $item - $page->metadata->$type - View::shared('page') - - - $item - - - static - - - config('hyde.meta', []) - - - Hyde::currentPage() !== null - - - - - $this->get() - - - ($this->$type)[$element->uniqueKey()] - - - $array["$type:$key"] - $key - $value - - - $element - - - - - $page->data('canonicalUrl') - $page->data('canonicalUrl') - - - $page->date->datetime - - - $page->date->datetime - - - - - config('hyde.navigation.custom', []) - - - each - each - unique - - - - - string - - - each - filter - map - - - $item->getGroup() - - - $group - - - - - $items - - - DropdownNavItem - - - new static($name, $items) - - - - - new self($route, $label, $priority, false) - - - $this->route->getPage()->data('navigation.group') - - - static - static - - - getPage - - - $href - $route - - - $this->href - $this->route - $this->route->getLink() - isset($this->route) - null - - - - - array{label: string|null, group: string|null, hidden: bool|null, priority: int|null} - - - $data['group'] ?? null - $data['hidden'] ?? null - $data['label'] ?? null - $data['priority'] ?? null - - - - - filter - - - array<string, DropdownNavItem> - - - $dropdowns - - - is - - - - - Collection - - - $this->paginatedItems->get($this->currentPage - 1) - - - $this->paginatedItems->get($this->currentPage - 1) - - - $routeBasename - - - isset($this->routeBasename) - isset($this->routeBasename) - isset($this->routeBasename) - - - - - $xmlElement - - - new static - - - - - $channel - $item - config('hyde.language', 'en') - - - each - - - $atomLink - $channel - $item - - - string - string - - - addAttribute - addAttribute - addAttribute - addChild - addChild - - - config('hyde.rss_description', Site::name().' RSS Feed') - config('hyde.rss_filename', 'feed.xml') - - - config('hyde.language', 'en') - - - $post->description - Site::name() - Site::url() - - - Site::name() - - - getContentLength - getSource - - - - - - each - - - - - registerPageClass - registerPageClass - registerPageClass - registerPageClass - registerPageClass - - - config('hyde.source_root', '') - config('hyde.output_directory', '_site') - - - config('hyde.source_root', '') - config('hyde.output_directory', '_site') - - - - - map - - - array - - - config('hyde.safe_output_directories', ['_site', 'docs', 'build']) - - - array<class-string<\Hyde\Pages\Concerns\HydePage>> - - - BuildService - BuildService - - - array_map - - - - - new $task($this->output) - - - static::findTasksInAppDirectory() - - - new $task($this->output) - - - config('hyde.generate_build_manifest', true) - config('hyde.post_build_tasks', []) - - - array<class-string<\Hyde\Framework\Features\BuildTasks\BuildTask>> - - - (string) $file - - - - - $file['unixsum'] - - - $checksums[] - $file - - - (string) $file - - - - - config('hyde.media_extensions', self::DEFAULT_MEDIA_EXTENSIONS) - - - $extensions - map - - - array<string> - - - FileCollection::getSourceFiles($model)->flatten() - - - - - config('docs.exclude_from_search', []) - view('hyde::pages.documentation-search')->render() - - - render - - - - - $extension - $line - $line - - - $lines - $this->config - - - $extension - $line - $line - $preprocessor - $this->markdown - - - $preprocessor::preprocess($this->markdown) - - - [$lineNumber, $lineLen - $stripLen] - int[] - - - - $converter - $html - - - - - $builder - - - - - $conflicts - - - Result - - - $this->$check(new Result) - - - - - Config::get('hyde', []) - - - $yaml - - - - - view('hyde::components.link') - - - Factory|View - - - LinkComponent - LinkComponent - - - - - MarkdownConverter - - - - - new static($matter) - - - - - $sourceModel - - - MarkdownDocument::parse($localFilepath)->markdown() - - - convert - - - static - - - convert - - - - - (new MarkdownFileParser($localFilepath))->get() - - - static - - - - - $pageData - - - $output - - - new static($html, $pageData) - new static(static::preprocess($html), $pageData) - - - - - $pattern - - - static::$patterns - - - $pattern - - - string - - - - render - - - - - $shortcode - - - $shortcode - - - string - - - $this->shortcodes[$signature]::resolve($line) - - - - strpos($line, ' ') - - - $output - $shortcodes - - - new static($markdown) - - - - - string - - - view($this->getBladeView())->render() - - - render - - - BladePage - - - - - string - - - render - - - - with - - - BaseMarkdownPage - - - new static($identifier, $matter, $markdown) - - - - - (new SourceFileParser(static::class, $identifier))->get() - - - ?string - int - string - - - config('hyde.name', 'HydePHP') - - - $this->navigation['group'] - $this->navigation['label'] - $this->navigation['priority'] - - - static - - - $this->navigation['label'] - $this->navigation['priority'] - - - $this->navigation['group'] - $this->navigation['hidden'] - $this->navigation['label'] - $this->navigation['priority'] - - - $this->navigation - $this->navigation - $this->navigation - $this->navigation - - - $title - - - \Hyde\Foundation\Kernel\PageCollection<\Hyde\Pages\Concerns\HydePage> - - - new static($identifier, $matter) - - - - - bool - - - config('docs.table_of_contents.enabled', true) - - - config('docs.source_file_location_base') - - - DocumentationPage - - - - - HtmlPage - - - - - MarkdownPage - - - - - static::all()->sortByDesc('matter.date') - - - \Hyde\Foundation\Kernel\PageCollection<\Hyde\Pages\MarkdownPost> - - - $author - $category - $date - $description - $image - MarkdownPost - - - \Hyde\Foundation\Kernel\PageCollection<\Hyde\Pages\MarkdownPost> - static::all()->sortByDesc('matter.date') - - - - - string - - - $this->__call('compile', []) - - - $macro(...$parameters) - - - InMemoryPage - - - new static($identifier, $matter, $contents, $view) - - - - - array{name: string, path: string} - - - new static($path) - - - - - new static($path, $pageClass) - - - - - string - - - - render - - - new static($path, $destination, $showText) - - - - - public function toArray(): array - - - $currentPage - $currentRoute - $page - - - $this->currentPage - $this->currentRoute - $this->page - null - null - null - - - - - array{routeKey: string, sourcePath: string, outputPath: string, page: array{class: string, identifier: string}} - - - ?Route - - - Router::get(str_replace('.', '/', $routeKey)) - - - - - $withTimeString - - - $passed - $tip - - - $this->tip - false - - - - - HydeKernel - HydeKernel - - - app(HydeKernel::class) - app(HydeKernel::class) - - + + + + $description + + + BuildRssFeedCommand + BuildRssFeedCommand + BuildRssFeedCommand + BuildRssFeedCommand + BuildRssFeedCommand + BuildRssFeedCommand + + + + + $description + + + BuildSearchCommand + BuildSearchCommand + BuildSearchCommand + BuildSearchCommand + BuildSearchCommand + BuildSearchCommand + + + + + environment() === 'testing' ? 'echo ' : '', + $command + ))]]> + + + taskService]]> + + + environment + setOutput + + + $description + + + setOutput + + + $service + $taskService + BuildSiteCommand + BuildSiteCommand + BuildSiteCommand + BuildSiteCommand + BuildSiteCommand + BuildSiteCommand + + + + + $description + + + BuildSitemapCommand + BuildSitemapCommand + BuildSitemapCommand + BuildSitemapCommand + BuildSitemapCommand + BuildSitemapCommand + + + + + $description + + + argument('name')]]> + + + ChangeSourceDirectoryCommand + ChangeSourceDirectoryCommand + ChangeSourceDirectoryCommand + ChangeSourceDirectoryCommand + ChangeSourceDirectoryCommand + ChangeSourceDirectoryCommand + + + + + + + + + + ]]> + + + $description + + + DebugCommand + DebugCommand + DebugCommand + DebugCommand + DebugCommand + DebugCommand + + + + + argument('title') + ?? $this->ask('What is the title of the page?') + ?? 'My New Page']]> + + + string + + + argument('title') + ?? $this->ask('What is the title of the page?') + ?? 'My New Page']]> + + + $description + + + option('type')]]> + + + option('force') ?? false]]> + + + $force + $pageClass + $selectedType + $title + MakePageCommand + MakePageCommand + MakePageCommand + MakePageCommand + MakePageCommand + MakePageCommand + + + getQualifiedPageType()]]> + + + + + argument('title') + ?? $this->askForString('What is the title of the post?') + ?? 'My New Post']]> + + + string + + + $answer + + + $description + + + option('force')]]> + + + argument('title')]]> + + + MakePostCommand + MakePostCommand + MakePostCommand + MakePostCommand + MakePostCommand + MakePostCommand + + + + + $hidden + + + PackageDiscoverCommand + PackageDiscoverCommand + PackageDiscoverCommand + PackageDiscoverCommand + PackageDiscoverCommand + + + + + $tags[array_search($selection, $options)] + + + $description + + + $selection + + + $selection + + + PublishConfigsCommand + PublishConfigsCommand + PublishConfigsCommand + PublishConfigsCommand + PublishConfigsCommand + PublishConfigsCommand + + + + + argument('homepage') ?? $this->parseChoiceIntoKey($this->promptForHomepage())]]> + choice( + 'Which homepage do you want to publish?', + $this->formatPublishableChoices(), + 0 + )]]> + + + string + string + + + $key: {$option['description']}"; + }]]> + map + map + + + $description + + + PublishHomepageCommand + PublishHomepageCommand + PublishHomepageCommand + PublishHomepageCommand + PublishHomepageCommand + PublishHomepageCommand + + + + + $description + + + argument('category') ?? $this->promptForCategory()]]> + + + PublishViewsCommand + PublishViewsCommand + PublishViewsCommand + PublishViewsCommand + PublishViewsCommand + PublishViewsCommand + + + + + $description + + + argument('path')]]> + + + argument('path')]]> + + + RebuildPageCommand + RebuildPageCommand + RebuildPageCommand + RebuildPageCommand + RebuildPageCommand + RebuildPageCommand + output = $output; + $this->path = $path; + } + + public function handle(): void + { + $this->validate(); + + StaticPageBuilder::handle(Pages::getPage($this->path)); + } + + public function printFinishMessage(): void + { + $this->createdSiteFile(Command::fileLink( + Pages::getPage($this->path)->getOutputPath() + ))->withExecutionTime(); + } + + protected function validate(): void + { + $directory = Hyde::pathToRelative(dirname($this->path)); + + $directories = [ + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(MarkdownPage::path()), + Hyde::pathToRelative(MarkdownPost::path()), + Hyde::pathToRelative(DocumentationPage::path()), + ]; + + if (! in_array($directory, $directories)) { + throw new Exception("Path [$this->path] is not in a valid source directory.", 400); + } + + if (! file_exists(Hyde::path($this->path))) { + throw new Exception("File [$this->path] not found.", 404); + } + } + }]]> + output = $output; + $this->path = $path; + } + + public function handle(): void + { + $this->validate(); + + StaticPageBuilder::handle(Pages::getPage($this->path)); + } + + public function printFinishMessage(): void + { + $this->createdSiteFile(Command::fileLink( + Pages::getPage($this->path)->getOutputPath() + ))->withExecutionTime(); + } + + protected function validate(): void + { + $directory = Hyde::pathToRelative(dirname($this->path)); + + $directories = [ + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(MarkdownPage::path()), + Hyde::pathToRelative(MarkdownPost::path()), + Hyde::pathToRelative(DocumentationPage::path()), + ]; + + if (! in_array($directory, $directories)) { + throw new Exception("Path [$this->path] is not in a valid source directory.", 400); + } + + if (! file_exists(Hyde::path($this->path))) { + throw new Exception("File [$this->path] not found.", 404); + } + } + }]]> + output = $output; + $this->path = $path; + } + + public function handle(): void + { + $this->validate(); + + StaticPageBuilder::handle(Pages::getPage($this->path)); + } + + public function printFinishMessage(): void + { + $this->createdSiteFile(Command::fileLink( + Pages::getPage($this->path)->getOutputPath() + ))->withExecutionTime(); + } + + protected function validate(): void + { + $directory = Hyde::pathToRelative(dirname($this->path)); + + $directories = [ + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(BladePage::path()), + Hyde::pathToRelative(MarkdownPage::path()), + Hyde::pathToRelative(MarkdownPost::path()), + Hyde::pathToRelative(DocumentationPage::path()), + ]; + + if (! in_array($directory, $directories)) { + throw new Exception("Path [$this->path] is not in a valid source directory.", 400); + } + + if (! file_exists(Hyde::path($this->path))) { + throw new Exception("File [$this->path] not found.", 404); + } + } + }]]> + + + + + RouteList + RouteListItem + parent::styleOutputPath($path) + parent::styleOutputPath($path) + parent::stylePageType($class) + parent::styleSourcePath($path) + + + route->getPage()->hasMacro('typeLabel')) { + $type .= sprintf(' (%s)', $this->route->getPage()->typeLabel()); + } + + return $type; + } + + protected function styleSourcePath(string $path): string + { + return parent::styleSourcePath($path) !== 'none' + ? $this->href(Command::fileLink(Hyde::path($path)), $path) + : 'none'; + } + + protected function styleOutputPath(string $path): string + { + return file_exists(Hyde::sitePath($path)) + ? $this->href(Command::fileLink(Hyde::sitePath($path)), parent::styleOutputPath($path)) + : parent::styleOutputPath($path); + } + + protected function href(string $link, string $label): string + { + return "$label"; + } + }]]> + parent::styleOutputPath($path) + parent::styleOutputPath($path) + parent::stylePageType($class) + parent::styleSourcePath($path) + + + route->getPage()->typeLabel()]]> + + + $description + + + RouteListCommand + RouteListCommand + RouteListCommand + RouteListCommand + RouteListCommand + RouteListCommand + + + hasMacro + typeLabel + + + + + $description + + + option('host')]]> + + + ServeCommand + ServeCommand + ServeCommand + ServeCommand + ServeCommand + ServeCommand + + + option('port') ?: Config::getInt('hyde.server.port', 8080)]]> + + + $type + + + + + $description + + + ValidateCommand + ValidateCommand + ValidateCommand + ValidateCommand + ValidateCommand + ValidateCommand + ValidateCommand + + + + + + + + VendorPublishCommand + VendorPublishCommand + VendorPublishCommand + VendorPublishCommand + VendorPublishCommand + + + + + ]]> + + + ]]> + + + + + $value + + + + + ]]> + + + SerializableContract + + + ]]> + filter(fn (string $method): bool => str_starts_with($method, 'has')) + ->mapWithKeys(fn (string $method): array => [ + Str::kebab(substr($method, 3)) => static::{$method}(), + ])->toArray()]]> + + + + + self::get($path, $lock) + pathToAbsolute(self::relativePath($path))]]> + self::put($path, $contents, $lock) + + + int|bool + string + string + + + ]]> + + + \Illuminate\Filesystem\Filesystem + + + app(\Illuminate\Filesystem\Filesystem::class) + app(\Illuminate\Filesystem\Filesystem::class) + + + ]]> + filesystem()->smartGlob($pattern, $flags)]]> + + + self::get($path, $lock) + self::put($path, $contents, $lock) + + + + + Application + Application + Application + Application + Application + Application + Application + Application + Application + + + + + BaseFoundationCollection + + + $kernel + + + + + ]]> + ]]> + ]]> + + + ]]> + ]]> + ]]> + + + ]]> + ]]> + ]]> + + + + + return $extension::getPageClasses(); + + + T + + + > $extension */ + return $extension::getPageClasses(); + }, $this->getRegisteredExtensions())]]> + + + new $extension() + + + + + + + + + + ]]> + + + files()]]> + + + ]]> + + + ]]> + + + + + ]]> + + + ]]> + + + + + getRoutes()]]> + + + ]]> + + + ]]> + + + ?Route + + + get($routeKey)]]> + get($routeKey)]]> + + + ]]> + + + + + SerializableContract + + + $files + $pages + $routes + + + + + + + + + array + + + basePath().DIRECTORY_SEPARATOR.'app'.DIRECTORY_SEPARATOR.'config.php'; + + $this->providePharSupportIfNeeded($files); + })]]> + + + + + + + + discoverFiles + + + filter(function (SourceFile $file) use ($pageClass): bool { + return $file->pageClass === $pageClass; + }) : $this]]> + + + ]]> + + + ]]> + + + filter + + + SourceFile + + + get($path) ?? throw new FileNotFoundException($path)]]> + + + FileCollection + + + (string) $path + + + FileCollection + ]]> + + + ]]> + + + + + collect(\Hyde\Facades\Filesystem::glob($pattern, $flags)) + + + pathToAbsolute($path)]]> + + + string + + + map(fn (string $path): string => $this->pathToRelative($path))]]> + + + $p + $p + + + map + + + $p + $p + + + \Hyde\Facades\Filesystem::glob($pattern, $flags) + + + + + discoverPages + + + filter(function (HydePage $page) use ($pageClass): bool { + return $page instanceof $pageClass; + }) : $this]]> + + + ]]> + + + kernel->files()->each(function (SourceFile $file): void { + $this->addPage($this->parsePage($file->pageClass, $file->getPath())); + })]]> + ]]> + + + parsePage + + + parsePage($file->pageClass, $file->getPath())]]> + + + each + filter + + + HydePage + + + get($sourcePath) ?? throw new FileNotFoundException($sourcePath)]]> + + + PageCollection + + + kernel->files()->each(function (SourceFile $file): void { + $this->addPage($this->parsePage($file->pageClass, $file->getPath())); + })]]> + PageCollection + ]]> + + + + + kernel->pages()->each(function (HydePage $page): void { + $this->addRoute(new Route($page)); + })]]> + ]]> + + + each + filter + + + Route + + + get($routeKey) ?? throw new RouteNotFoundException($routeKey)]]> + + + RouteCollection + + + kernel->pages()->each(function (HydePage $page): void { + $this->addRoute(new Route($page)); + })]]> + RouteCollection + ]]> + + + + + + + + + + + + + + + + + $matter + + + new static($contents) + + + + + $pageClass + + + $pageClass + + + + + each + + + new static() + + + + + [[END_TOC]]')]]> + + + + + matter]]> + + + new static($path) + + + + + getRouteKey()]]> + $page->getSourcePath(), + 'output_path' => $page->getOutputPath(), + 'source_hash' => $this->hashSourcePath($page), + 'output_hash' => $this->hashOutputPath($page), + ]]]> + + + + + $path + + + + + array_map + + + + + $pageClass + + + identifier)]]> + + + identifier)]]> + + + HydePage|BladePage|BaseMarkdownPage + + + identifier, + matter: $document->matter, + markdown: $document->markdown + )]]> + + + + + self::qualifyPathArgument($path) + + + string + + + $argumentValue + + + mapWithKeys + + + $argumentValue]]]> + + + $key + + + string|array|int|bool|null|LazyCollection + + + + + $value + + + $key + + + $value + + + ?bool + + + + + new $extensionClassName() + + + $extensionClassName + + + $extensionClassName + + + addExtension + + + + + ]]> + ]]> + + + + + $timeStart + $timeStart + $timeStart + $timeStart + $timeStart + + + + + matter('author')]]> + matter('date')]]> + + + ?string + string + + + matter('category')]]> + matter('category')]]> + matter('description') ?? $this->getTruncatedMarkdown($this->markdown->body())]]> + matter('description') ?? $this->getTruncatedMarkdown($this->markdown->body())]]> + + + markdown]]> + + + + + array{pageClass: string, identifier: string, sourcePath: string, outputPath: string, routeKey: string} + + + SerializableContract + + + + + markdown ?? false]]> + + + $value + + + + + Arrayable + + + + + ?string + + + matter->get($key)) ? $this->matter->get($key) : null]]> + matter->get($key)) ? $this->matter->get($key) : null]]> + + + new static($matter) + + + + + pageData, $this->title))->toArray()]]> + + + string + + + matter('title') + ?? $this->findTitleFromMarkdownHeadings() + ?? $this->findTitleFromParentIdentifier() + ?? Hyde::makeTitle(basename($this->identifier))]]> + matter('title') + ?? $this->findTitleFromMarkdownHeadings() + ?? $this->findTitleFromParentIdentifier() + ?? Hyde::makeTitle(basename($this->identifier))]]> + + + + + $class + + + matter('navigation.visible')]]> + identifier)]]> + + + ?bool + ?int + ?int + ?string + ?string + ?string + ?string + + + matter('navigation.group') + ?? $this->matter('navigation.category')]]> + matter('navigation.group') + ?? $this->matter('navigation.category')]]> + matter('navigation.hidden') + ?? $this->invert($this->matter('navigation.visible'))]]> + matter('navigation.hidden') + ?? $this->invert($this->matter('navigation.visible'))]]> + matter('navigation.label') + ?? $this->matter('navigation.title')]]> + matter('navigation.label') + ?? $this->matter('navigation.title')]]> + matter('navigation.priority') + ?? $this->matter('navigation.order')]]> + matter('navigation.priority') + ?? $this->matter('navigation.order')]]> + searchForLabelInFrontMatter() + ?? $this->searchForLabelInConfig() + ?? $this->matter('title') + ?? $this->title]]> + searchForLabelInFrontMatter() + ?? $this->searchForLabelInConfig() + ?? $this->matter('title') + ?? $this->title]]> + 'Home', + DocumentationPage::homeRouteName() => 'Docs', + ]), $this->routeKey)]]> + 0, + 'posts' => 10, + 'docs/index' => 100, + ])[$this->routeKey] ?? null]]> + 0, + 'posts' => 10, + 'docs/index' => 100, + ])[$this->routeKey] ?? null]]> + + + + + + + + + + mapWithKeys(function (self $author): array { + return [strtolower($author->username) => $author]; + })]]> + + + ]]> + + + ]]> + + + + + + ]]> + + + + + + + mapWithKeys + + + static + string + + + + + firstWhere('username', strtolower($username)) ?? Author::create($username)]]> + firstWhere('username', strtolower($username)) ?? Author::create($username)]]> + + + static + + + + + exitCode]]> + + + int + + + $output + $output + $output + $output + $output + $output + $output + $output + + + getCode()]]> + + + + + string + + + render()]]> + + + render + + + DocumentationSearchPage + DocumentationSearchPage + + + new static() + + + + + new self($page) + + + string + + + $this->page->getOnlineSourcePath(), + ])->render()]]> + + + static + + + render + + + + + + map + map + + + + + $type]]> + metadata->$type]]> + + + Render::getPage() + + + new static() + + + + + get()]]> + + + $type[$element->uniqueKey()]]]> + + + $key + + + $element + + + + + date->datetime]]> + getCanonicalUrl()]]> + getCanonicalUrl()]]> + getCanonicalUrl()]]> + + + date->datetime]]> + + + + + getRouteKey()]]> + + + items->sortBy('priority')->values()]]> + + + Collection + ]]> + + + Collection + ]]> + + + each + each + unique + + + getGroup()]]> + + + + + getRouteKey()]]> + + + string + + + items->filter(function (NavItem $item) use ($group): bool { + return ($item->getGroup() === $group) || ($item->getGroup() === Str::slug($group)); + })->sortBy('navigation.priority')->values()]]> + items->map(function (NavItem $item): string { + return $item->getGroup(); + })->unique()->toArray()]]> + + + ]]> + ]]> + + + items->map(function (NavItem $item): string { + return $item->getGroup(); + })]]> + ]]> + each(function (Route $route): void { + if ($this->canAddRoute($route)) { + $this->items->put($route->getRouteKey(), NavItem::fromRoute($route)); + } + })]]> + + + ]]> + + + each + filter + map + + + getGroup()]]> + + + $group + navigationMenuGroup()]]> + + + getRoute + navigationMenuGroup + navigationMenuGroup + + + each(function (Route $route): void { + if ($this->canAddRoute($route)) { + $this->items->put($route->getRouteKey(), NavItem::fromRoute($route)); + } + })]]> + + + + + $items + + + new static($name, $items) + + + + + ]]> + + + getPage()->data('navigation.group')]]> + + + getLink + + + getLink(), + $label ?? $route->getPage()->navigationMenuLabel(), + $priority ?? $route->getPage()->navigationMenuPriority(), + $group ?? static::getRouteGroup($route), + )]]> + new static($href, $label, $priority) + + + + + array{label: string, priority: int, hidden: bool, group: string|null} + + + NavigationData + SerializableContract + + + + + items->filter(function (NavItem $item): bool { + return $item instanceof DropdownNavItem; + })->values()->all()]]> + + + ]]> + + + items->add(new DropdownNavItem($group, $items))]]> + + + items->add(new DropdownNavItem($group, $items))]]> + + + $item + + + filter + + + $item + + + $dropdowns + + + + + $xmlElement + + + new static + + + + + $channel + $item + + + each + + + $atomLink + $channel + $item + + + addAttribute + addAttribute + addAttribute + addChild + addChild + + + description]]> + getCanonicalUrl()]]> + getCanonicalUrl()]]> + Site::name() + Site::url() + + + Site::name() + + + + + each + + + + + $kernel + + + + + $tokens[1] + + + + + map(function (HydePage $page): string { + return $page::class; + })]]> + map(function (HydePage $page): string { + return $page::class; + })->unique()->values()]]> + + + map + + + map(function (HydePage $page): string { + return $page::class; + })->unique()->values()->toArray()]]> + >]]> + + + BuildService + BuildService + + + map(function (HydePage $page): string { + return $page::class; + })]]> + map(function (HydePage $page): string { + return $page::class; + })->unique()->values()]]> + + + + + $task + + + $task + + + map + + + $task + + + new $task() + new $task() + + + + + $extension + $line + $line + + + $lines + config]]> + + + $extension + $line + $line + $preprocessor + markdown]]> + + + markdown)]]> + + + [$lineNumber, $lineLen - $stripLen] + int[] + + + $converter + $html + + + + + Result + + + $check(new Result)]]> + + + + + (string) $file + + + + + + + + Factory|View + + + getPage + + + BreadcrumbsComponent + BreadcrumbsComponent + + + + + + + + Factory|View + + + LinkComponent + LinkComponent + + + + + getInstance + + + + + MarkdownConverter + + + + + SerializableContract + + + new static($matter) + + + + + $pageClass + + + markdown()]]> + + + Arrayable + + + convert + + + static + + + convert + + + + + MarkdownFileParser::parse($path) + + + static + + + + + $pageData + + + $output + + + new static($html, $pageData) + new static(static::preprocess($html), $pageData) + + + + + $pattern + + + static::$patterns + + + $pattern + + + string + + + Config::getBool('markdown.allow_html', false) ? new HtmlString($path) : $path, + ])->render()]]> + + + render + + + + + ColoredBlockquotes + ColoredBlockquotes + ColoredBlockquotes + ColoredBlockquotes + + + + + + + + $output + $shortcodes + + + new static($markdown) + + + + + BladePage + BladePage + + + + + string + + + render + + + getBladeView())->with([ + 'title' => $this->title, + 'content' => $this->markdown->toHtml(static::class), + ])->render()]]> + + + with + + + BaseMarkdownPage + BaseMarkdownPage + + + new static($identifier, $matter, $markdown) + + + + + Facades\Pages::getPages(static::class) + + + ]]> + + + map(function (SourceFile $file): string { + return static::pathToIdentifier($file->getPath()); + })]]> + map(function (SourceFile $file): string { + return static::pathToIdentifier($file->getPath()); + })->values()]]> + + + get()]]> + + + SerializableContract + + + map + + + ?string + + + matter('canonicalUrl')]]> + matter('canonicalUrl')]]> + + + map(function (SourceFile $file): string { + return static::pathToIdentifier($file->getPath()); + })->values()->toArray()]]> + ]]> + + + static + + + $navigation + $title + + + + + Hyde::getSourceRoot() + isset(static::$sourceDirectory, static::$outputDirectory, static::$fileExtension) + isset(static::$sourceDirectory, static::$outputDirectory, static::$fileExtension) + isset(static::$sourceDirectory, static::$outputDirectory, static::$fileExtension) + static::$fileExtension + static::$outputDirectory + static::$sourceDirectory + + + map(function (SourceFile $file): string { + return static::pathToIdentifier($file->getPath()); + })]]> + map(function (SourceFile $file): string { + return static::pathToIdentifier($file->getPath()); + })->values()]]> + + + new static($identifier, $matter) + + + + + bool + + + + + + + + + + DocumentationPage + DocumentationPage + + + + + HtmlPage + HtmlPage + + + + + string + + + __call('compile', [])]]> + + + $macro(...$parameters) + + + InMemoryPage + InMemoryPage + + + new static($identifier, $matter, $contents, $view) + + + + + MarkdownPage + MarkdownPage + + + + + sortByDesc(function (self $post): int { + return $post->date?->dateTimeObject->getTimestamp() ?? 0; + })]]> + + + ]]> + + + sortByDesc + + + $author + $category + $date + $description + $image + MarkdownPost + MarkdownPost + + + date?->dateTimeObject->getTimestamp()]]> + + + 0 + + + + + $number + + + static + + + bound + renderForConsole + singleton + + + app(self::class) + app(self::class) + + + renderForConsole + + + + + Arrayable + + + + + ]]> + ]]> + ]]> + + + DataCollections + + + (array) $extensions + + + ]]> + ]]> + ]]> + + + ]]> + ]]> + ]]> + + + + + $this->getContentLength(), + 'mimeType' => $this->getMimeType(), + ])]]> + + + array + + + + mapWithKeys + + + ]]> + static::discoverMediaAssetFiles() + + + getIdentifier + + + + + array{name: string, path: string} + + + SerializableContract + + + new static($path) + + + + + $this->pageClass, + ])]]> + + + array + + + new static($path, $pageClass) + + + + + Redirect + Redirect + + + new static($path, $destination, $showText) + + + + + public function toArray(): array + + + $page + $route + $routeKey + + + Arrayable + + + page]]> + route]]> + routeKey]]> + null + null + null + + + + + array{routeKey: string, sourcePath: string, outputPath: string, page: array{class: string, identifier: string}} + + + SerializableContract + + + + + Arrayable + + + routes[0]]]> + + + + + + + + Arrayable + + + + + $withTimeString + + + $tip + + + tip]]> + false + + + + + Collection + + + paginatedItems->get($this->currentPage - 1)]]> + paginatedItems->get($this->currentPage - 1)]]> + + + paginatedItems->get($this->currentPage - 1)]]> + + + $routeBasename + + + routeBasename)]]> + routeBasename)]]> + routeBasename)]]> + + + + + __toString + + + new static($text) + + + + + HydeKernel + HydeKernel + + + app(HydeKernel::class) + app(HydeKernel::class) + app(HydeKernel::class) + app(HydeKernel::class) + +