for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Hyde\Framework\Models\Markdown;
use Hyde\Framework\Contracts\MarkdownDocumentContract;
use Hyde\Framework\Modules\Markdown\MarkdownFileParser;
/**
* A MarkdownDocument is a simpler alternative to a MarkdownPage.
*
* It's an object that contains a parsed FrontMatter split from the body of the Markdown file.
* @see \Hyde\Framework\Testing\Unit\MarkdownDocumentTest
*/
class MarkdownDocument implements MarkdownDocumentContract, \Stringable
{
public FrontMatter $matter;
public Markdown $markdown;
public function __construct(FrontMatter|array $matter = [], Markdown|string $body = '')
$this->matter = $matter instanceof FrontMatter ? $matter : new FrontMatter($matter);
$matter
Hyde\Framework\Models\Markdown\FrontMatter
$this->markdown = $body instanceof Markdown ? $body : new Markdown($body);
}
public function __toString(): string
return $this->markdown;
public function matter(string $key = null, mixed $default = null): mixed
return $key ? $this->matter->get($key, $default) : $this->matter;
public function markdown(): Markdown
public static function parse(string $localFilepath): static
return (new MarkdownFileParser($localFilepath))->get();