Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
HydeSmartDocsFacade
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
3 / 3
6
100.00% covered (success)
100.00%
1 / 1
 create
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 hasTorchlight
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
2
 canRenderSourceLink
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3namespace Hyde\Framework\Concerns\FacadeHelpers;
4
5use Hyde\Framework\Helpers\Features;
6use Hyde\Framework\Models\DocumentationPage;
7
8/**
9 * Provide static facade methods, and instance helpers for HydeSmartDocs.
10 *
11 * @see \Hyde\Framework\Services\HydeSmartDocs
12 */
13trait HydeSmartDocsFacade
14{
15    public static function create(DocumentationPage $page, string $html): static
16    {
17        return (new static($page, $html))->process();
18    }
19
20    public function hasTorchlight(): bool
21    {
22        return Features::hasTorchlight() && str_contains($this->html, 'Syntax highlighted by torchlight.dev');
23    }
24
25    protected function canRenderSourceLink(string $inPosition): bool
26    {
27        $config = config('docs.edit_source_link_position', 'both');
28        $positions = $config === 'both' ? ['header', 'footer'] : [$config];
29
30        return ($this->page->getOnlineSourcePath() !== false) && in_array($inPosition, $positions);
31    }
32}