From de05d032cebf3af6847fa1386466a7b63b50e02a Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Fri, 26 Aug 2022 19:42:52 +0200 Subject: [PATCH] Merge single use trait HasTableOfContents into DocumentationPage class --- .../src/Concerns/HasTableOfContents.php | 20 ------------------- .../src/Models/Pages/DocumentationPage.php | 11 ++++++++-- .../tests/Unit/HasTableOfContentsTest.php | 13 ++++++------ 3 files changed, 16 insertions(+), 28 deletions(-) delete mode 100644 packages/framework/src/Concerns/HasTableOfContents.php diff --git a/packages/framework/src/Concerns/HasTableOfContents.php b/packages/framework/src/Concerns/HasTableOfContents.php deleted file mode 100644 index bf0e3f37552..00000000000 --- a/packages/framework/src/Concerns/HasTableOfContents.php +++ /dev/null @@ -1,20 +0,0 @@ -markdown))->execute(); - } -} diff --git a/packages/framework/src/Models/Pages/DocumentationPage.php b/packages/framework/src/Models/Pages/DocumentationPage.php index 86cfef303c7..b0349483b81 100644 --- a/packages/framework/src/Models/Pages/DocumentationPage.php +++ b/packages/framework/src/Models/Pages/DocumentationPage.php @@ -2,8 +2,8 @@ namespace Hyde\Framework\Models\Pages; +use Hyde\Framework\Actions\GeneratesSidebarTableOfContents; use Hyde\Framework\Concerns\FrontMatter\Schemas\DocumentationPageSchema; -use Hyde\Framework\Concerns\HasTableOfContents; use Hyde\Framework\Contracts\AbstractMarkdownPage; use Hyde\Framework\Contracts\RouteContract; use Hyde\Framework\Models\FrontMatter; @@ -13,7 +13,6 @@ class DocumentationPage extends AbstractMarkdownPage { use DocumentationPageSchema; - use HasTableOfContents; public static string $sourceDirectory = '_docs'; public static string $outputDirectory = 'docs'; @@ -52,4 +51,12 @@ public static function hasTableOfContents(): bool { return config('docs.table_of_contents.enabled', true); } + + /** + * Generate Table of Contents as HTML from a Markdown document body. + */ + public function getTableOfContents(): string + { + return (new GeneratesSidebarTableOfContents($this->markdown))->execute(); + } } diff --git a/packages/framework/tests/Unit/HasTableOfContentsTest.php b/packages/framework/tests/Unit/HasTableOfContentsTest.php index 002582d2a18..aba72bccef1 100644 --- a/packages/framework/tests/Unit/HasTableOfContentsTest.php +++ b/packages/framework/tests/Unit/HasTableOfContentsTest.php @@ -2,23 +2,24 @@ namespace Hyde\Framework\Testing\Unit; -use Hyde\Framework\Concerns\HasTableOfContents; +use Hyde\Framework\Models\Markdown; +use Hyde\Framework\Models\Pages\DocumentationPage; use Hyde\Testing\TestCase; /** * Class HasTableOfContentsTest. * - * @covers \Hyde\Framework\Concerns\HasTableOfContents + * @covers \Hyde\Framework\Models\Pages\DocumentationPage * * @see \Hyde\Framework\Testing\Feature\Actions\GeneratesSidebarTableOfContentsTest */ class HasTableOfContentsTest extends TestCase { - use HasTableOfContents; - public function testConstructorCreatesTableOfContentsString() { - $this->markdown = '## Title'; - $this->assertEquals('', str_replace("\n", '', $this->getTableOfContents())); + $page = new DocumentationPage(); + + $page->markdown = new Markdown('## Title'); + $this->assertEquals('', str_replace("\n", '', $page->getTableOfContents())); } }