From c8257268dd4d4c4186648a94eaef1202862f86fc Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:20:25 +0200 Subject: [PATCH 01/13] Update wrong test name --- .../framework/tests/Feature/Services/RssFeedServiceTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/framework/tests/Feature/Services/RssFeedServiceTest.php b/packages/framework/tests/Feature/Services/RssFeedServiceTest.php index 0bd69786f62..ffcd57508a4 100644 --- a/packages/framework/tests/Feature/Services/RssFeedServiceTest.php +++ b/packages/framework/tests/Feature/Services/RssFeedServiceTest.php @@ -136,19 +136,19 @@ public function test_generate_feed_helper_returns_xml_string() $this->assertStringStartsWith('', (RssFeedService::generateFeed())); } - public function test_can_generate_sitemap_helper_returns_true_if_hyde_has_base_url() + public function test_can_generate_feed_helper_returns_true_if_hyde_has_base_url() { config(['site.url' => 'foo']); $this->assertTrue(Features::rss()); } - public function test_can_generate_sitemap_helper_returns_false_if_hyde_does_not_have_base_url() + public function test_can_generate_feed_helper_returns_false_if_hyde_does_not_have_base_url() { config(['site.url' => '']); $this->assertFalse(Features::rss()); } - public function test_can_generate_sitemap_helper_returns_false_if_sitemaps_are_disabled_in_config() + public function test_can_generate_feed_helper_returns_false_if_feeds_are_disabled_in_config() { config(['site.url' => 'foo']); config(['hyde.generate_rss_feed' => false]); From bc3cfddfaab46c8a8f953475e8aed5e4041b7101 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:29:00 +0200 Subject: [PATCH 02/13] Only enable RSS feeds when there are posts --- RELEASE_NOTES.md | 1 + .../framework/src/Commands/HydeBuildStaticSiteCommand.php | 3 +-- packages/framework/src/Helpers/Features.php | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index def31237084..94d5fbe0588 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -14,6 +14,7 @@ This serves two purposes: ### Changed - Renamed HydeSmartDocs.php to SemanticDocumentationArticle.php +- The RSS feed related generators are now only enabled when there are blog posts ### Deprecated - for soon-to-be removed features. diff --git a/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php b/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php index 412366a8b22..36ba04f8d66 100644 --- a/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php +++ b/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php @@ -168,8 +168,7 @@ protected function canGenerateSitemap(): bool protected function canGenerateFeed(): bool { - return Features::rss() - && count(DiscoveryService::getMarkdownPostFiles()) > 0; + return Features::rss(); } protected function canGenerateSearch(): bool diff --git a/packages/framework/src/Helpers/Features.php b/packages/framework/src/Helpers/Features.php index 7d13a87225c..5e2d029ee3e 100644 --- a/packages/framework/src/Helpers/Features.php +++ b/packages/framework/src/Helpers/Features.php @@ -4,6 +4,7 @@ use Hyde\Framework\Concerns\JsonSerializesArrayable; use Hyde\Framework\Hyde; +use Hyde\Framework\Services\DiscoveryService; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Str; @@ -157,7 +158,8 @@ public static function rss(): bool return Hyde::hasSiteUrl() && static::hasBlogPosts() && config('hyde.generate_rss_feed', true) - && extension_loaded('simplexml'); + && extension_loaded('simplexml') + && count(DiscoveryService::getMarkdownPostFiles()) > 0; } /** @inheritDoc */ From 5873b0765d828ac0767265833b6a93d4bb545fd4 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:30:48 +0200 Subject: [PATCH 03/13] Only enable search index when there are documentation pages --- RELEASE_NOTES.md | 1 + packages/framework/src/Commands/HydeBuildStaticSiteCommand.php | 3 +-- packages/framework/src/Helpers/Features.php | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 94d5fbe0588..d28c618af75 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -15,6 +15,7 @@ This serves two purposes: ### Changed - Renamed HydeSmartDocs.php to SemanticDocumentationArticle.php - The RSS feed related generators are now only enabled when there are blog posts +- The documentation search related generators are now only enabled when there are documentation pages ### Deprecated - for soon-to-be removed features. diff --git a/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php b/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php index 36ba04f8d66..4c042a515b2 100644 --- a/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php +++ b/packages/framework/src/Commands/HydeBuildStaticSiteCommand.php @@ -173,7 +173,6 @@ protected function canGenerateFeed(): bool protected function canGenerateSearch(): bool { - return Features::hasDocumentationSearch() - && count(DiscoveryService::getDocumentationPageFiles()) > 0; + return Features::hasDocumentationSearch(); } } diff --git a/packages/framework/src/Helpers/Features.php b/packages/framework/src/Helpers/Features.php index 5e2d029ee3e..bf55c5db365 100644 --- a/packages/framework/src/Helpers/Features.php +++ b/packages/framework/src/Helpers/Features.php @@ -77,7 +77,8 @@ public static function hasDataCollections(): bool public static function hasDocumentationSearch(): bool { return static::enabled(static::documentationSearch()) - && static::hasDocumentationPages(); + && static::hasDocumentationPages() + && count(DiscoveryService::getDocumentationPageFiles()) > 0; } public static function hasDarkmode(): bool From faedfb5bd369e810d0c9e4bd2cb0ff936f0a975b Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:32:07 +0200 Subject: [PATCH 04/13] Update RELEASE_NOTES.md --- RELEASE_NOTES.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d28c618af75..011f67432ff 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -24,7 +24,8 @@ This serves two purposes: - for now removed features. ### Fixed -- for any bug fixes. +- Fixed [#443](https://github.com/hydephp/develop/issues/443): RSS feed meta link should not be added if there is not a feed + ### Security - in case of vulnerabilities. From b1fc33e09fb91284152ea92c1e2242b8f373d73b Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:40:12 +0200 Subject: [PATCH 05/13] Update HydeBuildRssFeedCommandTest.php --- .../tests/Feature/Commands/HydeBuildRssFeedCommandTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/framework/tests/Feature/Commands/HydeBuildRssFeedCommandTest.php b/packages/framework/tests/Feature/Commands/HydeBuildRssFeedCommandTest.php index 7d26a6e0b0f..e405df59715 100644 --- a/packages/framework/tests/Feature/Commands/HydeBuildRssFeedCommandTest.php +++ b/packages/framework/tests/Feature/Commands/HydeBuildRssFeedCommandTest.php @@ -28,6 +28,7 @@ public function test_rss_feed_is_generated_when_conditions_are_met() { config(['site.url' => 'https://example.com']); config(['hyde.generate_rss_feed' => true]); + $this->file('_posts/foo.md'); unlinkIfExists(Hyde::path('_site/feed.xml')); $this->artisan('build:rss') @@ -43,6 +44,7 @@ public function test_rss_filename_can_be_changed() config(['site.url' => 'https://example.com']); config(['hyde.generate_rss_feed' => true]); config(['hyde.rss_filename' => 'blog.xml']); + $this->file('_posts/foo.md'); unlinkIfExists(Hyde::path('_site/feed.xml')); unlinkIfExists(Hyde::path('_site/blog.xml')); From f5e87a09a9f9d63e8626080afda554773006e782 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:41:27 +0200 Subject: [PATCH 06/13] Update RELEASE_NOTES.md --- RELEASE_NOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 011f67432ff..29c6636b5ec 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -15,7 +15,9 @@ This serves two purposes: ### Changed - Renamed HydeSmartDocs.php to SemanticDocumentationArticle.php - The RSS feed related generators are now only enabled when there are blog posts + - This means that no feed.xml will be generated, nor will there be any references (like meta tags) to it when there are no blog posts - The documentation search related generators are now only enabled when there are documentation pages + - This means that no search.json nor search.html nor any references to them will be generated when there are no documentation pages ### Deprecated - for soon-to-be removed features. From 680a4627937397214f71d7e08656caa80bc95780 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:47:46 +0200 Subject: [PATCH 07/13] Update MetadataTest.php --- packages/framework/tests/Feature/MetadataTest.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/framework/tests/Feature/MetadataTest.php b/packages/framework/tests/Feature/MetadataTest.php index 4162a2fec7e..b87cba5784b 100644 --- a/packages/framework/tests/Feature/MetadataTest.php +++ b/packages/framework/tests/Feature/MetadataTest.php @@ -235,6 +235,8 @@ public function test_automatically_adds_rss_feed_when_enabled() { config(['site.url' => 'foo']); config(['hyde.generate_rss_feed' => true]); + $this->file('_posts/foo.md'); + $page = new MarkdownPage(); @@ -245,6 +247,8 @@ public function test_rss_feed_uses_configured_site_url() { config(['site.url' => 'bar']); config(['hyde.generate_rss_feed' => true]); + $this->file('_posts/foo.md'); + $page = new MarkdownPage(); @@ -256,6 +260,8 @@ public function test_rss_feed_uses_configured_site_name() config(['site.url' => 'foo']); config(['site.name' => 'Site']); config(['hyde.generate_rss_feed' => true]); + $this->file('_posts/foo.md'); + $page = new MarkdownPage(); @@ -267,6 +273,8 @@ public function test_rss_feed_uses_configured_rss_file_name() config(['site.url' => 'foo']); config(['hyde.rss_filename' => 'posts.rss']); config(['hyde.generate_rss_feed' => true]); + $this->file('_posts/foo.md'); + $page = new MarkdownPage(); $this->assertStringContainsString( From fb62c3980a2de6035aeda181c7f4c26a5ff03996 Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Sun, 28 Aug 2022 18:47:56 +0000 Subject: [PATCH 08/13] Apply fixes from StyleCI --- packages/framework/tests/Feature/MetadataTest.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/framework/tests/Feature/MetadataTest.php b/packages/framework/tests/Feature/MetadataTest.php index b87cba5784b..631efb68888 100644 --- a/packages/framework/tests/Feature/MetadataTest.php +++ b/packages/framework/tests/Feature/MetadataTest.php @@ -237,7 +237,6 @@ public function test_automatically_adds_rss_feed_when_enabled() config(['hyde.generate_rss_feed' => true]); $this->file('_posts/foo.md'); - $page = new MarkdownPage(); $this->assertEquals('', $page->metadata->render()); @@ -249,7 +248,6 @@ public function test_rss_feed_uses_configured_site_url() config(['hyde.generate_rss_feed' => true]); $this->file('_posts/foo.md'); - $page = new MarkdownPage(); $this->assertEquals('', $page->metadata->render()); @@ -262,7 +260,6 @@ public function test_rss_feed_uses_configured_site_name() config(['hyde.generate_rss_feed' => true]); $this->file('_posts/foo.md'); - $page = new MarkdownPage(); $this->assertEquals('', $page->metadata->render()); From 40f525d80ae5ab7779f8aeb0f539e8fcbe3c8f19 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:51:06 +0200 Subject: [PATCH 09/13] Update MetadataViewTest.php --- packages/framework/tests/Feature/MetadataViewTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/framework/tests/Feature/MetadataViewTest.php b/packages/framework/tests/Feature/MetadataViewTest.php index 5bddabaa6c4..698f3a14b6c 100644 --- a/packages/framework/tests/Feature/MetadataViewTest.php +++ b/packages/framework/tests/Feature/MetadataViewTest.php @@ -74,7 +74,6 @@ protected function getDefaultTags(): array '', '', '', - '', '', '', ]; @@ -135,6 +134,7 @@ public function test_metadata_tags_in_empty_markdown_post() $assertions = $this->assertSee('posts/test', array_merge($this->getDefaultTags(), [ 'HydePHP - Test', + '', '', '', '', @@ -171,6 +171,7 @@ public function test_metadata_tags_in_markdown_post_with_flat_front_matter() $assertions = $this->assertSee('posts/test', array_merge($this->getDefaultTags(), [ 'HydePHP - My title', + '', '', '', '', From 5cbe4b8a79300976ced72981dff0f41e670ca9dc Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 20:55:43 +0200 Subject: [PATCH 10/13] Update RssFeedServiceTest.php --- .../framework/tests/Feature/Services/RssFeedServiceTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/framework/tests/Feature/Services/RssFeedServiceTest.php b/packages/framework/tests/Feature/Services/RssFeedServiceTest.php index ffcd57508a4..6f9351b27f1 100644 --- a/packages/framework/tests/Feature/Services/RssFeedServiceTest.php +++ b/packages/framework/tests/Feature/Services/RssFeedServiceTest.php @@ -139,12 +139,14 @@ public function test_generate_feed_helper_returns_xml_string() public function test_can_generate_feed_helper_returns_true_if_hyde_has_base_url() { config(['site.url' => 'foo']); + $this->file('_posts/foo.md'); $this->assertTrue(Features::rss()); } public function test_can_generate_feed_helper_returns_false_if_hyde_does_not_have_base_url() { config(['site.url' => '']); + $this->file('_posts/foo.md'); $this->assertFalse(Features::rss()); } From a25cda23bb40716c95d70eec7c7d0c134ce5fbb4 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 21:00:28 +0200 Subject: [PATCH 11/13] Update NavigationMenuViewTest.php --- .../framework/tests/Unit/Views/NavigationMenuViewTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php index 9664d33f5bb..e1cc8a55340 100644 --- a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php +++ b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php @@ -3,6 +3,7 @@ namespace Hyde\Framework\Testing\Unit\Views; use Hyde\Framework\Hyde; +use Hyde\Framework\HydeKernel; use Hyde\Testing\TestCase; /** @@ -59,6 +60,8 @@ public function test_navigation_menu_label_can_be_changed_in_front_matter() title: "My custom title" --- '); + HydeKernel::getInstance()->boot(); + $this->artisan('rebuild _pages/foo.md'); $this->assertStringContainsString('My custom title', file_get_contents(Hyde::path('_site/foo.html'))); Hyde::unlink('_site/foo.html'); @@ -71,6 +74,7 @@ public function test_navigation_menu_label_can_be_changed_in_blade_matter() @php($navigation = ['title' => 'My custom title']) BLADE ); + HydeKernel::getInstance()->boot(); $this->artisan('rebuild _pages/foo.blade.php'); $this->assertStringContainsString('My custom title', file_get_contents(Hyde::path('_site/foo.html'))); From 3bbd214bac1fc1ba6c7df3db0acfa0fe4271e986 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Sun, 28 Aug 2022 21:01:24 +0200 Subject: [PATCH 12/13] Reboot to rediscover new pages --- .../framework/tests/Unit/Views/NavigationMenuViewTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php index e1cc8a55340..133a0c71a30 100644 --- a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php +++ b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php @@ -60,7 +60,7 @@ public function test_navigation_menu_label_can_be_changed_in_front_matter() title: "My custom title" --- '); - HydeKernel::getInstance()->boot(); + Hyde::boot(); $this->artisan('rebuild _pages/foo.md'); $this->assertStringContainsString('My custom title', file_get_contents(Hyde::path('_site/foo.html'))); @@ -74,7 +74,7 @@ public function test_navigation_menu_label_can_be_changed_in_blade_matter() @php($navigation = ['title' => 'My custom title']) BLADE ); - HydeKernel::getInstance()->boot(); + Hyde::boot(); $this->artisan('rebuild _pages/foo.blade.php'); $this->assertStringContainsString('My custom title', file_get_contents(Hyde::path('_site/foo.html'))); From 9a31f056dd7b093f825792d0b3532f32d50c352c Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Sun, 28 Aug 2022 19:01:36 +0000 Subject: [PATCH 13/13] Apply fixes from StyleCI --- packages/framework/tests/Unit/Views/NavigationMenuViewTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php index 133a0c71a30..14287bd16a0 100644 --- a/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php +++ b/packages/framework/tests/Unit/Views/NavigationMenuViewTest.php @@ -3,7 +3,6 @@ namespace Hyde\Framework\Testing\Unit\Views; use Hyde\Framework\Hyde; -use Hyde\Framework\HydeKernel; use Hyde\Testing\TestCase; /**