Merge pull request #3630 from BookStackApp/export_template_parts

Export template partials
This commit is contained in:
Dan Brown 2022-08-09 13:51:24 +01:00 committed by GitHub
commit 38ce54ea0c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 1 deletions

View File

@ -12,8 +12,10 @@
@include('exports.parts.custom-head')
</head>
<body class="export export-format-{{ $format }} export-engine-{{ $engine ?? 'none' }}">
@include('layouts.parts.export-body-start')
<div class="page-content">
@yield('content')
</div>
@include('layouts.parts.export-body-end')
</body>
</html>

View File

@ -0,0 +1,2 @@
{{-- This is a placeholder template file provided as a --}}
{{-- convenience to users of the visual theme system. --}}

View File

@ -0,0 +1,2 @@
{{-- This is a placeholder template file provided as a --}}
{{-- convenience to users of the visual theme system. --}}

View File

@ -272,7 +272,7 @@ class ThemeTest extends TestCase
$this->assertStringContainsString('Command ran!', $output);
}
public function test_body_start_and_end_template_files_can_be_used()
public function test_base_body_start_and_end_template_files_can_be_used()
{
$bodyStartStr = 'barry-fought-against-the-panther';
$bodyEndStr = 'barry-lost-his-fight-with-grace';
@ -289,6 +289,25 @@ class ThemeTest extends TestCase
});
}
public function test_export_body_start_and_end_template_files_can_be_used()
{
$bodyStartStr = 'barry-fought-against-the-panther';
$bodyEndStr = 'barry-lost-his-fight-with-grace';
/** @var Page $page */
$page = Page::query()->first();
$this->usingThemeFolder(function (string $folder) use ($bodyStartStr, $bodyEndStr, $page) {
$viewDir = theme_path('layouts/parts');
mkdir($viewDir, 0777, true);
file_put_contents($viewDir . '/export-body-start.blade.php', $bodyStartStr);
file_put_contents($viewDir . '/export-body-end.blade.php', $bodyEndStr);
$resp = $this->asEditor()->get($page->getUrl('/export/html'));
$resp->assertSee($bodyStartStr);
$resp->assertSee($bodyEndStr);
});
}
protected function usingThemeFolder(callable $callback)
{
// Create a folder and configure a theme