Skip to content

Commit

Permalink
Merge pull request #1552 from hydephp/improved-includes
Browse files Browse the repository at this point in the history
Add a new `Includes::html()` helper hydephp/develop@56242ab
  • Loading branch information
github-actions committed Feb 12, 2024
1 parent c9b48c6 commit baec3d2
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/Support/Includes.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,24 @@ public static function get(string $filename, ?string $default = null): ?string
return file_get_contents($path);
}

/**
* Get the HTML contents of a partial file in the includes directory.
*
* @param string $filename The name of the partial file, with or without the extension.
* @param string|null $default The default value to return if the partial is not found.
* @return string|null The raw contents of the partial file, or the default value if not found.
*/
public static function html(string $filename, ?string $default = null): ?string
{
$path = static::path(basename($filename, '.html').'.html');

if (! file_exists($path)) {
return $default === null ? null : $default;
}

return file_get_contents($path);
}

/**
* Get the rendered Markdown of a partial file in the includes directory.
*
Expand Down
21 changes: 21 additions & 0 deletions tests/Feature/IncludesFacadeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,27 @@ public function test_get_returns_default_value_when_not_found()
$this->assertEquals('default', Includes::get('foo.txt', 'default'));
}

public function test_html_returns_rendered_partial()
{
$expected = '<h1>foo bar</h1>';
file_put_contents(Hyde::path('resources/includes/foo.html'), '<h1>foo bar</h1>');
$this->assertEquals($expected, Includes::html('foo.html'));
Filesystem::unlink('resources/includes/foo.html');
}

public function test_html_returns_efault_value_when_not_found()
{
$this->assertNull(Includes::html('foo.html'));
$this->assertEquals('<h1>default</h1>', Includes::html('foo.html', '<h1>default</h1>'));
}

public function test_html_with_and_without_extension()
{
file_put_contents(Hyde::path('resources/includes/foo.html'), '# foo bar');
$this->assertEquals(Includes::html('foo.html'), Includes::html('foo'));
Filesystem::unlink('resources/includes/foo.html');
}

public function test_markdown_returns_rendered_partial()
{
$expected = "<h1>foo bar</h1>\n";
Expand Down

0 comments on commit baec3d2

Please sign in to comment.