Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Upcoming changes

Please see the RELEASE_NOTES.md for the changelog for the upcoming release.

About the release cycle

HydePHP consists of two primary components, Hyde/Hyde and Hyde/Framework. Development is made in the Hyde/Develop Monorepo. Major and Minor release versions are made in the Develop project. These releases are synced to the Hyde and Framework projects, and are what this changelog file tracks. Patch release versions are made in the Framework and Hyde projects independently. See https://github.com/hydephp/develop#releases for more information.

1.6.0 - 2024-04-17

Added

Changed

Deprecated

Fixed

Upgrade Path

In order to prepare your project for HydePHP v2.0, you should update your config/hyde.php configuration file to use the new Feature enum for the features array.

You can see the changes to make in your Hyde project by looking at the following pull request https://github.com/hydephp/hyde/pull/250/files

Your new config array should look like this:

1// Make sure to import the new Feature enum at the top of the file
2use Hyde\Enums\Feature;
3 
4// Then replace your enabled features with the new Feature enum cases
5'features' => [
6 // Page Modules
7 Feature::HtmlPages,
8 Feature::MarkdownPosts,
9 Feature::BladePages,
10 Feature::MarkdownPages,
11 Feature::DocumentationPages,
12 
13 // Frontend Features
14 Feature::Darkmode,
15 Feature::DocumentationSearch,
16 
17 // Integrations
18 Feature::Torchlight,
19],

If you need more help, you can see detailed upgrade instructions with screenshots in the pull request https://github.com/hydephp/develop/pull/1650

1.5.0 - 2024-02-13

Improved Patch Release Strategy

This release experiments some changes into how releases are handled to clarify the patch versioning of distributed packages compared to the monorepo source versioning.

In short: We are now experimenting with rolling patch releases, where patches are released as soon as they're ready, leading to faster rollout of bugfixes. This means that the patch version discrepancy between the monorepo and the distributed packages will be increased, but hopefully the end results will still be clearer, thanks to the second related change: Prefixing the subpackage changes in this changelog with the package name. If there is no prefix, the change applies to the core package or the monorepo.

All this to say, please keep in mind that when the monorepo gets a new minor version, the prefixed changes may already have been released as patches in their respective packages.

Added

Changed

Deprecated

Fixed

1.4.2 - 2023-12-22

Added

Changed

Fixed

1.4.0 - 2023-12-11

Added

Changed

Removed

Fixed

Internal

1.3.0 - 2023-10-30

Added

Changed

Fixed

v1.2.0 - 2023-06-22

Added

Changed

Removed

Fixed

v1.1.0 - 2023-03-22

About

This release is the first since the official release of HydePHP 1.0.0. It contains a number of bug fixes and improvements, but no breaking changes as the project has reached general availability and adheres to the semantic versioning backwards compatibility promise.

Added

Changed

Removed

  • Classes PageDataFactory, NavigationDataFactory, and BlogPostDataFactory no longer use the InteractsWithFrontMatter trait

Fixed

v1.0.0 - 2023-03-14

Changed

  • Compiled TailwindCSS and HydeFront for production #1295
  • Updated to HydeFront v3.2 #1297

Security

  • Bumped Webpack from 5.73.0 to 5.76.1 #1292

v1.0.0-RC.8 - 2023-03-14

Changed

Removed

Fixed

  • Fixed "ReadingTime calculation should never be under one minute" #1286 in #1285
  • Fixed "The HydeCLI list command logo should respect the --no-ansi setting" #1127 in #1288

v1.0.0-RC.7 - 2023-03-14

Added

Changed

v1.0.0-RC.6 - 2023-03-14

Removed

Fixed

v1.0.0-RC.5 - 2023-03-13

Added

Changed

Fixed

  • Bugfix: Fix missing justify-between class on the documentation article header #1265

v1.0.0-RC.4 - 2023-03-12

Added

  • Added new method HydePage::getCanonicalUrl() to replace deprecated HydePage::$canonicalUrl property.

Changed

  • Added default RSS feed description value to the config stub in #1253
  • Changed the RSS feed configuration structure to be an array of feed configurations in #1258
    • Replaced option hyde.generate_rss_feed with hyde.rss.enabled
    • Replaced option hyde.rss_filename with hyde.rss.filename
    • Replaced option hyde.rss_description with hyde.rss.description

Removed

  • Removed RouteKey::normalize method deprecated in v1.0.0-RC.2
  • Removed RenderData:.getCurrentPage method deprecated in v1.0.0-RC.2
  • Removed RenderData:.getCurrentRoute method deprecated in v1.0.0-RC.2
  • Removed deprecated HydePage::$canonicalUrl property (replaced with HydePage::getCanonicalUrl()).
  • Removed deprecated SourceFile::withoutDirectoryPrefix method only used in one test.
  • Removed deprecated CreatesNewPageSourceFile::getOutputPath method as the save method now returns the path.

Fixed

  • Fixed the blog post article view where metadata assembly used legacy hard-coded paths instead of dynamic path information.

v1.0.0-RC.3 - 2023-03-11

Changed

  • Made the HydePage::$title property readonly

Deprecated

  • HydePage::$canonicalUrl

v1.0.0-RC.2 - 2023-03-10

Added

  • Added a new HydeKernel::currentPage() method to return the page being rendered.

Changed

  • Renamed global $currentRoute and $currentPage variables to $route and $routeKey respectively.
  • Renamed Render::getCurrentRoute() to Render::getRoute() to match renamed property.
  • Renamed Render::getCurrentPage() to Render::getRouteKey() to match renamed property.

Deprecated

This release candidate version contains a few deprecations, these will be removed before the final 1.0.0 release.

  • Deprecate RouteKey::normalize method as it no longer performs any normalization.
  • Deprecate RenderData::getCurrentRoute() as it is renamed to getRoute() to match renamed property.
    • This change affects the Render::getCurrentRoute() and Hyde::currentRoute() facade methods.
  • Deprecate RenderData::getCurrentPage() as it is renamed to getRouteKey() to match renamed property.
    • This change affects the Render::getCurrentPage() and Hyde::currentPage() facade methods.

Removed

Fixed

v1.0.0-RC.1 - 2023-03-07

About

Welcome to the first release candidate for HydePHP 1.0! If you are coming from a beta version, please know that there are is a very large amount of breaking changes regarding the internal structure, so it is highly reccomended that you read through the release notes below.

Added

Breaking changes

Abstract

This beta release contains a plethora of breaking changes compared earlier beta versions. So many in fact, it could actually be easier and faster to recreate your project from scratch than to upgrade a particularly complex project. Though it only took me like five minutes to upgrade a simple documentation site, see this diff to see what I did.

The good news however, is that as HydePHP approaches version 1.0, there will no longer be releases like these with breaking changes.

While I've got your attention: read this the section right after this, as you might not need to make any changes at all.

Do I need to make any changes to my project?

If any of these statements are true, you will probably need to make changes to your project, and it might be easiest to copy over your content to a new project.

  • You currently only have PHP 8.0 installed, HydePHP now requires PHP 8.1.
  • You have written custom code (for example in Blade views) that relies on the old API.
  • You have published the built-in Blade views (you should be able to get away by just republishing them).

In all cases, you will most definitely need to republish the configuration files and update the app/bootstrap.php file.

Upgrade guide

The easiest way to upgrade your project is to copy over your content (source files, etc.) to a new project.

Major breaking changes

These are changes that break backwards compatibility and that are likely to concern users using HydePHP to create sites.

  • HydePHP now requires PHP 8.1 or higher.
  • Almost all namespaces in the framework have been changed and restructured.
  • Many of the internal underling Laravel application files have been moved, this means your app/ directory will look a bit different. See #873
  • The config/site.php file has been merged into config/hyde.php. See #964 for the upgrade guide.

Breaking internal changes

These are changes that break backwards compatibility but are unlikely to concern users using HydePHP to create sites. Instead, these changes will likely only concern those who write custom code and integrations using the HydePHP framework.

These types of changes are handled within the framework ecosystem to ensure they do not affect those using HydePHP to create sites. For example, if a namespace is changed, all internal references to that namespace are updated, so most users won't even notice it. If you however have written custom code that explicitly references the old namespace, you will need to update your code to use the new namespace.

  • The Framework package now uses strict types for its source files.

v0.64.0-beta - 2022-10-18

Note from the maintainer

First of all, I'm really sorry for the just insane amount of breaking changes in this update. I believe they are necessary in order to make v1.0 a great and stable release. I hope you'll understand. Most of the changes are likely to not affect normal usage, with the exception of the front matter navigation key changes.

About

This release performs a large amount of refactors and naming changes in preparation for the 1.0 release. Many of these refactors are breaking as several classes are moved around to new namespaces, several are merged, methods renamed, interfaces updated, and more, so forth, etc.

In general, these changes should only affect those who have written custom code that interacts with the framework, though you may need to update your configuration files, and any Blade components you may have published.

What you can expect to break

This update requires the configuration file to be updated.

The most high impact change is change of sidebar front matter options, and related areas. Please try updating your site in a test environment first, to see if you need to update any of your front matter.

Added

  • Added a JSON build information manifest automatically generated after a site build #465
  • Added a NavigationData object to HydePage.php
  • Added a Route::is() method to determine if a given route or route key matches the instance it's called on
  • Added a Site model #506
  • Added a route:list command #516
  • Added support for "dot notation" to the HydePage::get() method #497
  • Added support for "dot notation" to route key retrievals in the Route facade #513
  • Added support for plain HTML pages that are copied from the _pages to the _site directory #519
  • Added class aliases for all page types so they can be used in Blade components without the full namespace #518
  • Added a Redirect helper to create custom static HTML redirects #527
  • Added automatic cache busting to the Asset helper #530

Changed

Major breaking changes

A very large number the changes in this update are breaking, as such, not all are marked as breaking. The really major changes that require especially close attention are here listed, please scroll down to see the rest as well as the concrete changes of this high level overview.

  • Rename Features::blogPosts to Features::markdownPosts - This means you must update your hyde.php config, otherwise blog posts might not be generated
  • Rename Features::hasBlogPosts to Features::hasMarkdownPosts
  • Renamed base class AbstractPage to HydePage
  • Renamed base class AbstractMarkdownPage to BaseMarkdownPage
  • Renamed several HydePage methods to be more consistent
  • Renamed property $title to $label in NavItem.php
  • Renamed property $uri to $url in Image.php
  • Removed both RouteContract interfaces (inlined into Route.php, which you now type hint against instead)
  • Changed front matter key navigation.title to navigation.label
  • Changed front matter key image.uri to image.url for blog posts
Navigation schema changes

If you are using any of the following front matter properties, you will likely need to update them:

  • navigation.title is now navigation.label
  • The label setting has been removed from documentation pages, use navigation.label instead
  • The hidden setting has been removed from documentation pages, use navigation.hidden instead
  • The priority setting has been removed from documentation pages, use navigation.priority instead

This change also bubbles to the HydePage accessors, though that will only affect you if you have written or published custom code that interacts with the framework.

General

  • Merged interface PageContract into abstract class AbstractPage
  • Merged interface RouteFacadeContract into the Route model implementation
  • Merged interface RouteContract into the Route model implementation
  • Merged getCurrentPagePath() method into existing getRouteKey() method in PageContract and AbstractPage
  • Replaced schema traits with interfaces, see https://github.com/hydephp/develop/pull/485
  • Extracted all constructor methods in page schema traits to a new single trait ConstructPageSchemas
  • The StaticPageBuilder::$outputPath property is now a relative path instead of absolute
  • Refactored how navigation and sidebar data are handled, unifying the API, see below for more details
  • The algorithm for finding the navigation and sidebar orders has been updated, this may affect the order of your pages, and may require you to re-tweak any custom priorities.
  • The navigation link to documentation index page now has default priority 500 instead of 100
  • All usages where the RouteContract was type hinted with have been updated to type hint against the Route model implementation instead
  • Changed Blade component identifier class 'sidebar-category' to 'sidebar-group'
  • Changed Blade component identifier class 'sidebar-category-heading' to 'sidebar-group-heading'
  • Changed Blade component identifier class 'sidebar-category-list' to 'sidebar-group-list'
  • Changed the Route::toArray schema
  • Split the page metadata handling so that global metadata is now handled by the Site model (meta.blade.php must be updated if you have published it)
  • The MetadataBag class now implements Htmlable, so you can use it directly in Blade templates without calling render()
  • BladePage $view constructor argument is now optional
  • internal: Move responsibility for filtering documentation pages to the navigation menus (this means that documentation pages that are not 'index' are no longer regarded as hidden)
  • internal: The HydePage::$navigation property is now a NavigationData object instead of an array, however the object extends ArrayObject, so it should be mostly compatible with existing code

Class and method renames

  • Renamed base class AbstractPage to HydePage
  • Renamed base class AbstractMarkdownPage to BaseMarkdownPage
  • Renamed command class HydeBuildStaticSiteCommand to HydeBuildSiteCommand
  • Renamed legacy class FileCacheService to ChecksumService
  • Renamed method Hyde::getSiteOutputPath() to Hyde::sitePath()
  • Renamed method Hyde::formatHtmlPath() to Hyde::formatLink()
  • Renamed class Metadata to MetadataBag

Namespace changes

  • Moved class StaticPageBuilder to Actions namespace
  • Moved class AbstractBuildTask to Concerns namespace
  • Moved class AbstractMarkdownPage to Concerns namespace
  • Moved class AbstractPage to Concerns namespace
  • Moved class Application into Foundation namespace
  • Moved class Includes to Helpers namespace
  • Moved class Asset to Helpers namespace
  • Moved class DocumentationSidebar into Navigation namespace
  • Moved class NavigationMenu into Navigation namespace
  • Moved class NavItem into Navigation namespace
  • Moved class FindsContentLengthForImageObject into Constructors namespace
  • Moved class Markdown into Models\Markdown namespace
  • Moved class Markdown into Models\Markdown namespace
  • Moved class FrontMatter into Models\Markdown namespace
  • Moved class Author into Models\Support namespace
  • Moved class DateString into Models\Support namespace
  • Moved class File into Models\Support namespace
  • Moved class Image into Models\Support namespace
  • Moved class Route into Models\Support namespace
  • Moved class Site into Models\Support namespace
  • Moved class ValidationResult into Models\Support namespace
  • Moved class MarkdownConverter into Actions namespace
  • Moved class MarkdownFileParser into Actions namespace

Page-model specific

  • Removed action class FindsNavigationDataForPage.php (merged into HydePage.php via the GeneratesNavigationData trait)
  • Renamed method outputLocation to outputPath in HydePage.php
  • Renamed method qualifyBasename to sourcePath in HydePage.php
  • Renamed method getOutputLocation to outputLocation in HydePage.php
  • Renamed method getFileExtension to fileExtension in HydePage.php
  • Renamed method getOutputDirectory to outputDirectory in HydePage.php
  • Renamed method getSourceDirectory to sourceDirectory in HydePage.php
  • Changed named variable $basename to $identifier in HydePage.php
  • Removed $strict option from the has() method HydePage.php
  • Removed method renderPageMetadata from HydePage.php (use metadata() and/or metadata()->render() instead)

Documentation page front matter changes

  • Removed property $label in DocumentationPage.php (use $navigation['title'] instead)
  • Removed property $hidden in DocumentationPage.php (use $navigation['hidden'] instead)
  • Removed property $priority in DocumentationPage.php (use $navigation['priority'] instead)
  • Removed property $category in DocumentationPage.php (use $navigation['group'] instead)
  • Removed front matter optionlabel (use navigation.label instead)
  • Removed front matter optionhidden (use navigation.hidden instead)
  • Removed front matter optionpriority (use navigation.priority instead)
  • Removed front matter optioncategory (use navigation.group instead)
  • To access the sidebar label setting via class property, use $navigation['label'] instead of $label, etc.
  • To access the sidebar label setting via front matter getters, use navigation.label instead of label, etc.

Markdown post/pre-processor changes

If you have not written any custom Markdown processors or any custom codes that interacts with default ones, you can ignore this section. Note that list may not be exhaustive.

  • Removed interface MarkdownProcessorContract (use MarkdownPreProcessorContract or MarkdownPostProcessorContract instead)
  • ShortcodeProcessor now implements MarkdownPreProcessorContract instead of MarkdownProcessorContract
  • Renamed method ShortcodeProcessor::process() to ShortcodeProcessor::preprocess()
  • Renamed class AbstractColoredBlockquote to ColoredBlockquotes
  • Refactored a large part of the MarkdownService class

Removed

  • Removed MarkdownServiceProvider (inlined into HydeServiceProvider)
  • Removed interface IncludeFacadeContract
  • Removed interface PageContract (merged into abstract class AbstractPage)
  • Removed interface MarkdownPageContract (merged into abstract class BaseMarkdownPage)
  • Removed interface RouteFacadeContract (merged into the Route.php implementation)
  • Removed interface RouteContract (merged into the Route.php implementation)
  • Removed deprecated interface AssetServiceContract
  • Removed deprecated interface HydeKernelContract
  • Removed deprecated and unused abstract class ActionCommand
  • Removed unused function array_map_unique
  • Removed method PageContract::getCurrentPagePath() (merged into getRouteKey() in the same class)
  • Removed method AbstractPage::getCurrentPagePath() (merged into getRouteKey() in the same class)
  • Removed method Route::getSourceFilePath() (use new Route::getSourcePath() instead)
  • Removed method Route::getOutputFilePath() (use new Route::getOutputPath() instead)
  • Removed unused $default parameter from Hyde::url method
  • Using absolute paths for site output directories is no longer supported (use build tasks to move files around after build if needed)
  • RealtimeCompiler: Removed support for the legacy bootstrapping file removed in Hyde v0.40
  • Removed all experimental schema traits

Fixed

  • Fixed validation bug in the rebuild command
  • Hide x-cloak elements using inline style in styles.blade.php to prevent flashes until stylesheets are loaded
  • Configuration defined navigation labels were documented but not implemented

v0.63.0-beta - 2022-09-01

About

This release contains breaking changes regarding the PostBuildTasks that may require your attention if you have created custom tasks.

Added

  • Added the option to define some site configuration settings in a hyde.yml file. See #449
  • Build tasks are now automatically registered when placed in the app/Actions directory and end with BuildTask.php

Changed

  • Breaking changes to build hooks/tasks:
    • Rename BuildHookService to BuildTaskService
    • AbstractBuildTask::handle and BuildTaskContract::handle now returns null by default instead of void. It can also return an exit code
    • The way auxiliary build actions are handled internally has been changed to use build tasks, see PR #453
    • The documentation has been updated to consistently refer to these as tasks instead of hooks
  • 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
  • The methods in InteractsWithDirectories.php are now static, this does not affect existing usages
  • Renamed HydeSmartDocs.php to SemanticDocumentationArticle.php
  • Cleans up the Author model class and makes the constructors final

Deprecated

  • Deprecated ActionCommand.php as it is no longer used. It will be removed in the next release.

Fixed

  • Fixed #443: RSS feed meta link should not be added if there is not a feed

v0.62.0-beta - 2022-08-27

About

This update deprecates two interfaces (contracts) and inlines them into their implementations. It also refactors the documentation page layout to use more Blade components which may cause you to need to republish any manually published components.

The following interfaces are affected: HydeKernelContract and AssetServiceContract. These interfaces were used to access the service container bindings. Instead, you would now type hint the implementation class instead of the contract. This change will only affect those who have written custom code that uses or type hints these interfaces, which is unlikely. If this does affect you, you can see this diff to see how to upgrade. https://github.com/hydephp/develop/pull/428/commits/68d2974d54345ec7c12fedb098f6030b2c2e85ee. In short, simply replace HydeKernelContract and AssetServiceContract with HydeKernel and AssetService.

Changed

  • The documentation page layout has been internally refactored to utilize more Blade components. This only affects those who have extended or customized the documentation components. Some documentation components have also been renamed.

Deprecated

  • Deprecate interface HydeKernelContract, type hint the HydeKernel::class instead
  • Deprecate interface AssetServiceContract, type hint the AssetService::class instead

Removed

  • Removed legacy .js-enabled class from documentation pages

Fixed

  • The list element of the documentation page sidebar had a conflicting ID (#sidebar) and has now been changed to #sidebar-navigation which may break edge cases where this component is styled or interacted with outside of the framework.
  • Fix documentation page flickering #388

v0.61.0-beta - 2022-08-17

About

Creates a new foundation class, the FileCollection. Which like the other foundation collections, discovers all the files. Running this part of the autodiscovery will further enrich the Hyde Kernel, and allow greater insight into the application. The end user experience should not be affected by this.

Added

  • Adds a new FileCollection class to hold all discovered source and asset files
  • Adds a new File model as an object-oriented way of representing a project file

Changed

  • Move class PageCollection into Foundation namespace
  • Move class RouteCollection into Foundation namespace

Fixed

  • Fix #424 AbstractMarkdownPage save method should use Hyde::path()

Upgrade guide

Collection namespace change

You only need to do this if you have written custom code that uses the old namespace.

To upgrade the moved collection namespaces, simply replace the following namespace imports:

1-use Hyde\Framework\PageCollection;
2+use Hyde\Framework\Foundation\PageCollection;
3-use Hyde\Framework\RouteCollection;
4+use Hyde\Framework\Foundation\RouteCollection;

v0.60.0-beta - 2022-08-12

About

This release continues refactoring the internal codebase. As part of this, a large part of deprecated code has been removed and the package has been updated accordingly.

Added

  • Added getRouteKey method to PageContract and AbstractPage

Changed

  • Blog posts now have the same open graph title format as other pages
  • Merged deprecated method getRoutesForModel into getRoutes in RouteCollection
  • Cleans up and refactors GeneratesDocumentationSearchIndexFile, and marks it as internal
  • Changed MarkdownFileParser to expect that the supplied filepath is relative to the root of the project (this may break method calls where an absolute path is supplied, see upgrade guide)
  • internal: Inline deprecated internal method usage getOutputPath replacing it Hyde::pages() helper with in HydeRebuildStaticSiteCommand

Removed

  • Removed class RoutingService as it is no longer used
  • Removed deprecated legacy class Compiler from the Hyde Realtime Compiler
  • Removed deprecated interface RoutingServiceContract (deprecated in v0.59)
  • Removed deprecated method stylePath from AssetService (deprecated in v0.50)
  • Removed deprecated method getHomeLink from NavigationMenu (deprecated in v0.50)
  • Removed deprecated method parseFile from MarkdownDocument (deprecated in v0.56)
  • Removed deprecated method getPostDescription from MarkdownPost (deprecated in v0.58)
  • Removed deprecated method getCanonicalLink from MarkdownPost (deprecated in v0.58)
  • Removed deprecated method getInstance from RoutingService (deprecated in v0.59)
  • Removed deprecated method getRoutesForModel from RouteCollection
  • Removed deprecated method getOutputPath from HydeRebuildStaticSiteCommand
  • Removed deprecated property $body from MarkdownDocument
  • internal: Remove deprecated testing helper functions backup and restore

Fixed

  • MarkdownFileParser not using the Hyde path #399
  • Undefined variable $currentRoute in search.html #421
  • Fixes issues in the documentation search.json and search.html when using custom output directories

Upgrade Guide

MarkdownFileParser path change

This class now expects the supplied filepath to be relative to the root of the project. This will only affect you if you have written any custom code that uses this class. All internal Hyde code is already updated to use the new path format.

To upgrade, change any calls you may have like follows:

1-return (new MarkdownFileParser(Hyde::path('_posts/foo.md')))->get();
2+return (new MarkdownFileParser('_posts/foo.md'))->get();

v0.59.0-beta - 2022-08-11

About

This release refactors the internal routing system. Unless you have written custom code that directly uses these classes and methods, updating should be fairly smooth. If not, you may want to read through the following overview.

The route index has been decoupled from page index and is split into two new collection classes, PageCollection and RouteCollection. The PageCollection contains all the site's parsed pages, and the RouteCollection contains all the page routes.

The RoutingService class remains for compatibility with existing code, but now only forwards calls to the new RouteCollection. The RoutingServiceContract interface is now deprecated.

Added

  • Adds a new RouteCollection class
  • Adds a new PageCollection class
  • Adds a $routeKey property to the AbstractPage class
  • The page and route collections are now stored as properties of the HydeKernel
  • Adds an option to the Hyde::image() helper to request the returned image path use the configured base URL if it's set
  • Adds a new save() method to Markdown-based pages, to save the page object to the filesystem
  • Added new internal helpers to improve serialization of object models

Changed

  • breaking: Navigation menu priorities now use route keys instead of slugs, see upgrade notes below
  • Removed constructor from RoutingServiceContract interface
  • Refactored RoutingService to use the new RouteCollection class
  • AbstractPage::all() now returns a PageCollection, and includes the source file path as the array key
  • Improved ConvertsArrayToFrontMatter action, which now supports nested arrays
  • An exception is now thrown when attempting to get the path to an Image without a defined source path or URI
  • internal: The HydeKernel is now stored as a singleton within the kernel class, instead of the service container
  • internal: Refactor commands with shared code to extend new abstract base class
  • internal: A large part of the codebase has been refactored and cleaned up while making an effort to maintain compatibility with existing code

Deprecated

  • Deprecated interface RoutingServiceContract
  • Deprecated RoutingServiceContract::getInstance()

Removed

  • Removed all non public-contract methods from RoutingService

Fixed

  • Fix #383: Navigation menu titles can't be set in BladeMatter
  • Fix #385: DocumentationPage::home() did not work for custom documentation page output directories
  • Fix #386: Documentation page sidebar labels were not constructed from front matter
  • Fix bugs relating to the documentation sidebar labels that appeared in the last release
  • Fix #410: Search index generator breaks when storing documentation page source files in subdirectories

Upgrade notes

Route keys are now used in navigation config

Prior to this release, the navigation menu priorities were based on the page slug. This has been changed to the route key. A route key in Hyde is in short the compiled page's path, relative to the site's root. For example, _site/foo/bar.html has the route key foo/bar.

This change is breaking as the order of navigation items may be changed unless the configuration is updated. However, this is really easy. Just change docs to docs/index in the config/hyde.php file.

1'navigation' => [
2 'order' => [
3 'index' => 0,
4 'posts' => 10,
5- 'docs' => 100,
6+ 'docs/index' => 100,
7 ],
8],

If you have used the config to hide the documentation page from the navigation menu, you also need to use the route key by changing 'exclude' => ['docs'] to 'exclude' => ['docs/index']. The same goes if you have used the config to change the navigation titles for the home and documentation pages.

v0.58.0-beta - 2022-08-08

About

This update contains breaking changes to the internal API regarding page models. This should only affect you directly if you've written any code that interacts with the internal page models, such as constructing them using non-built-in Hyde helpers.

The update makes large changes to how dynamic data is constructed. Instead of generating page data at runtime, now the data is generated when constructing a page object. This gives the major benefit of being able to see all dynamic data right away, without having to render the page.

The way metadata tags are handled internally is also refactored. The rendered result should not be affected.

Added

  • Added compile() method to Facades\Markdown, replacing the parse() method of the same class
  • Adds new actions to handle complex dynamic constructors
  • Adds new front matter schema traits to define the public API for front matter and hold their data
  • Adds new Meta::link() helper to create <link> tags
  • Adds new Meta::get() helper to get the metadata array
  • Adds a new system for creating and storing page metadata
  • Adds several new metadata model classes

Changed

  • Breaking: Rename AbstractMarkdownPage constructor parameter slug to identifier
  • Breaking: Rename AbstractPage property slug to identifier
  • Breaking: Change AbstractMarkdownPage constructor argument positions, putting identifier first
  • Breaking: Splits Markdown data from MarkdownDocument into new Markdown model class
  • Breaking: The default config/hyde.php file now uses Models\Author instead of Helpers\Author
  • Major: Restructure internal page data to use new front matter schema traits
  • Begin changing references to slugs to identifiers, see motivation below
  • Makes some helpers in SourceFileParser public static allowing them to be used outside the class
  • Page metadata is now stored as a page property, making it easier to see and understand
  • Page metadata is now generated at compile time instead of build time
  • Page metadata types are now strongly typed, however all types are String able, so end usage is not affected

Deprecated

  • Deprecated Facades\Markdown::parse(), use Facades\Markdown::render() instead
  • Deprecated Facades\Markdown.php, will be merged into Models\Markdown.php

Removed

  • Removed Facades\Markdown.php, merged into Models\Markdown.php
  • Removed body() method from MarkdownDocumentContract interface and all its implementations. Use markdown()->body() (or cast to string) instead
  • Removed body property from Markdown pages. Use markdown()->body() (or cast to string) instead
  • Removed deprecated Helpers\Author (fully merged into Models\Author, simply swap namespace to upgrade)
  • Removed metadata constructor helpers from the MarkdownPost class as it is now handled in the new metadata class
  • Several internal single-use helper traits have been merged into their respective classes

Fixed

  • Fix Path property in Image model should be relative to media directory #359
  • Fix Add toString method to Image model to get the link #370
  • Fix Blog post OpenGraph images must be resolved relatively #374
  • Fix PageContract needs compile method #366

Upgrade guide and extra information

Rename slugs to identifiers

Previously internally called slug(s), are now called identifier(s). In all honestly, this has 90% to do with the fact that I hate the word "slug". I considered using basename as an alternative, but that does not fit with nested pages. Here instead is the definition of an identifier in the context of HydePHP:

An identifier is a string that is in essence everything in the filepath between the source directory and the file extension.

So, for example, a page source file stored as _pages/foo/bar.md would have the identifier foo/bar. Each page type can only have one identifier of the same name. But since you could have a file with the same identifier in the _posts directory, we internally always need to specify what source model we are using.

The identifier property is closely related to the page model's route key property, which consists of the site output directory followed by the identifier.

Heavily refactor constructors of Markdown-based page models

Adds a new interface to the Markdown page model constructors, that expects instantiated FrontMatter and MarkdownDocument objects. Normally you would use the SourceFileParser to create the object.

This means that the constructor for all Markdown-based pages is completely changed. To use a format matching the old behaviour, you can use the MarkdownPageModel::make method.

Title property has been removed from page model constructors

The following syntax has been removed: new MarkdownPage(title: 'Foo Bar') Instead, you can add it with front matter: MarkdownPage::make(matter: ['title' => 'Foo Bar'])

Markdown pages now have front matter in an object instead of array

This means that instead of the following $post->matter['title'], you would use $post->matter('title'), which allows you to add a fallback like so: $post->matter('title', 'Untitled')

Author helper has been merged into the model

The deprecated Helpers\Author has been fully merged into Models\Author. Simply swap namespaces to upgrade.

1-use Hyde\Framework\Helpers\Author;
2+use Hyde\Framework\Models\Author;

v0.57.0-beta - 2022-08-03

About

This update refactors the internal page source model parsing. This will likely not affect you directly, however, if you have written custom code that interacts with any class relating to the PageParser contract, you'll want to take a closer look at the changes.

Added

  • Added a new static shorthand to quickly parse Markdown files into MarkdownDocuments (MarkdownFileParser::parse())
  • Added toArray() method to MarkdownDocuments, which returns an array of all the body lines

Changed

  • All source model parsing is now handled by the new SourceFileParser action
  • Blog post front matter no longer includes merged slug
  • MarkdownDocument now implements the Arrayable interface
  • Markdown page models no longer includes the slug merged into the front matter
  • All Markdown page models now have the title property inferred when parsing
  • internal: The DocumentationPage slug now behaves like other pages, and the basename is produced at runtime, see below
  • internal: Refactor search index generator to use route system

Deprecated

  • Deprecated MarkdownDocument::parseFile(), will be renamed to MarkdownDocument::parse()

Removed

  • The PageParserContract interface, and all of its implementations have been removed
  • Removed $localPath property from DocumentationPage class, see above
  • Removed trait HasDynamicTitle

v0.56.0-beta - 2022-08-03

About

This update makes changes to the internal Markdown services. If you have written code or integrations that uses any of these services, you may want to take a closer look. Otherwise, this should not affect you much.

Many Markdown related classes have been moved to a new namespace, and the classes themselves have been restructured. Again, this only affects those who in the past have used these classes outside of what Hyde normally provides.

Due to the nature of this refactor, where so much have been changed, not everything is documented here. See the attached pull request for the full Markdown change diff: https://github.com/hydephp/develop/pull/318

Added

  • Added model FrontMatter.php
  • Create MarkdownConverter.php
  • Create MarkdownServiceProvider.php
  • internal: Added Benchmarking framework

Changed

  • Move Markdown::hasTableOfContents() to DocumentationPage::hasTableOfContents()
  • Move most Markdown related classes into Modules\Markdown namespace
  • Rename MarkdownConverterService to MarkdownService
  • Rename MarkdownFileService to MarkdownFileParser
  • Replace CommonMarkConverter with Hyde MarkdownConverter

Removed

  • Remove old MarkdownConverter action
  • Delete HasMarkdownFeatures.php

v0.55.0-beta - 2022-08-01

About

This update removes the deprecated LegacyPageRouter class from the Hyde Realtime Compiler (HydeRC). Along with this release, the HydeRC is now on version 2.5, and requires Hyde version 0.48.0-beta or higher.

Changed

  • hyde/hyde now requires HydeRC version 2.5 or higher.
  • hyde/realtime-compiler no longer supports Framework versions older than v0.48.0-beta.

Removed

  • Remove the deprecated LegacyPageRouter class from the HydeRC.

v0.54.0-beta - 2022-08-01

About

This release refactors and cleans up a large part of the internal code base. For most end users, this will not have any visible effect. If you have developed integrations that depend on methods you may want to take a closer look at the associated pull requests as it is not practical to list them all here.

Overview

Here is a short overview of the areas that are impacted. If you don't know what any of these mean, they don't affect you.

  • HydeKernel has been internally separated into foundation classes
  • DiscoveryService has been refactored
  • Page compiling logic are now handled within the page models

Added

  • internal: Adds methods to the HydeKernelContract interface
  • Added new filesystem helpers, Hyde::touch(), and Hyde::unlink()

Changed

  • internal: The HydeKernel has been refactored to move related logic to service classes. This does not change the end usage as the Hyde facade still works the same
  • DiscoveryService::getSourceFileListForModel() now throws an exception instead of returning false when given an invalid model class
  • DiscoveryService::getFilePathForModelClassFiles method was renamed to DiscoveryService::getModelSourceDirectory
  • DiscoveryService::getFileExtensionForModelFiles method was renamed to DiscoveryService::getModelFileExtension
  • The Hyde::copy() helper now always uses paths relative to the project
  • The Hyde::copy() helper will always overwrite existing files
  • Replaced SitemapService::canGenerateSitemap() with Features::sitemap()
  • Replaced RssFeedService::canGenerateFeed() with Features::rss()
  • RSS feed is now always present on all pages, see reasoning in a93e30020

Deprecated

  • Deprecated trait HasMarkdownFeatures.php

Removed

  • Removed deprecated Hyde::uriPath() helper
  • Removed deprecated CollectionService::findModelFromFilePath()

Upgrade tips

When refactoring the Hyde::copy() helper change, you have two options (that you can combine). If one or more of your inputs are already qualified Hyde paths, use the native copy helper. If you don't want to overwrite existing files, make that check first.

v0.53.0-beta - 2022-07-30

About

This release refactors some internal code. If you have published any Blade views or created any custom integrations, you may want to take a closer look at the changes. Otherwise, this should not affect most existing sites.

Added

  • Added Hyde::url() and Hyde::hasSiteUrl() helpers, replacing now deprecated Hyde::uriPath() helper

Changed

  • The HTML page titles are now generated in the page object, using the new htmlTitle() helper
  • Renamed helper Hyde::pageLink() to Hyde::formatHtmlPath()
  • internal: DiscoveryService.php is no longer deprecated
  • internal: CollectionService.php was merged into DiscoveryService
  • internal: Renamed trait GeneratesPageMetadata to HasArticleMetadata

Deprecated

  • Deprecated Hyde::uriPath(), use Hyde::url() or Hyde::hasSiteUrl() instead
  • Deprecated Helpers\Author.php, will be merged into Models\Author.php

Removed

  • internal: CollectionService.php has been removed, all its functionality has been moved to DiscoveryService
  • internal: The $currentPage parameter of a few methods has been removed, it is no longer necessary due to it being inferred from the view being rendered

v0.52.0-beta - 2022-07-29

About

This update internally refactors how documentation sidebars are handled. If you have published Blade views relating to these, or built framework integrations you may want to take a closer look at the changed files.

Added

  • Hyde now supports nested pages!

Changed

  • internal: Refactor how documentation sidebars are generated and handled
  • internal: (Sidebar) categories are now internally referred to as "groups"
  • internal: The sidebar related Blade views have been renamed
  • DocumentationPage::indexPath() was renamed to DocumentationPage::home() and now returns a Route instead of a URL. It no longer resolves to README files.

v0.51.0-beta - 2022-07-28

Added

  • Add Laravel Tinker as a development dependency for the Monorepo
  • Improved the hyde make:page command to add page type selection shorthands

Removed

  • Removed test files from the hyde/hyde sub repository

v0.50.0-beta - 2022-07-26

About

This update makes breaking changes to the configuration. You will need to update your configuration to continue using the new changes. Each one has been documented in this changelog entry, which at the end has an upgrade guide.

Overview of major changes

As there are a lot of changes, here is first a quick overview of the major ones. See the full list after this section.

  • Alpine.js is now used for interactions.
  • HydeFront has been rewritten and is now on version 2.x.
  • The hyde.css and hyde.js files have now for all intents and purposes been merge into app.css and refactored to Alpine.js, respectively.
  • The documentation pages are now styled using TailwindCSS instead of Lagrafo.
  • Moved some configuration options from hyde.php to site.php
  • Moved Composer dependencies, you will laravel-zero/framework added to your Hyde composer.json file.

Note that the goal with this release is to make the framework more stable and developer friendly, but without it affecting the end user experience. For example, the visual experience as well as the interactions of the refactored documentation pages are minimal and most users won't notice any change. However, for developers, the changes are significant and will reduce a lot of complexity in the future.

Added

  • Added Alpine.js to the default HydePHP layout
  • Added a new configuration file, config/site.php, see below
  • Added RSS feed configuration stubs to config/site.php
  • Added an Includes facade that can quickly import partials
  • Added an automatic option to load footer Markdown from partial
  • Added the hyde.load_app_styles_from_cdn option to load _media/app.css from the CDN

Changed

  • Move laravel-zero/framework Composer dependency to hyde/hyde package
  • Moved site specific configuration settings to config/site.php
    • Moved config option hyde.name to site.name
    • Moved config option hyde.site_url to site.url
    • Moved config option hyde.pretty_urls to site.pretty_urls
    • Moved config option hyde.generate_sitemap to site.generate_sitemap
    • Moved config option hyde.language to site.language
    • Moved config option hyde.output_directory to site.output_directory
  • The default site.url is now http://localhost instead of null
  • Merged configuration options for the footer, see below
  • Rebrand lagrafo documentation driver to HydeDocs
  • Hyde now requires a minimum version of HydeFront v2.x, see release notes below
  • internal: Refactor navigation menu components and improve link helpers
  • internal: The main Hyde facade class has been split to house the logic in the HydeKernel class, but all methods are still available through the new facade with the same namespace
  • internal: Move tests foundation to new testing package
  • internal: Renamed GeneratesTableOfContents.php to GeneratesSidebarTableOfContents.php

Removed

  • Removed \Hyde\Framework\Facades\Route. You can swap out usages with \Hyde\Framework\Models\Route without side effects.
  • Removed ConvertsFooterMarkdown.php
  • Removed internal $siteName config variable from config/hyde.php

Fixed

  • Fixed bug #260 where the command to publish a homepage did not display the selected value when it was supplied as a parameter
  • Fixed bug #272, only generate the table of contents when and where it is actually used
  • Fixed bug #41 where search window does not work reliably on Safari

Upgrade Guide

Here are some instructions for upgrading an existing project. You should also read the standard upgrade guide first for general advice, https://hydephp.com/docs/1.x/updating-hyde.

If you use Git, you may be able to automatically configure some of these by merging https://github.com/hydephp/hyde into your project. Alternatively, you can download the release and unzip it into your project directory, and using GitHub Desktop or VS Code (or whatever you use) to stage the new changes without affecting your project's configuration.

Core file changes

Here is an overview of the core files that have changed and that you will most likely need to update. Some of these have detailed instructions further down.

  • config/site.php (new)
  • config/hyde.php (changed)
  • config/app.php (changed)
  • app/bootstrap.php (changed)
  • composer.json (changed)
  • package.json (changed)
  • resources\assets\app.css (changed)
  • _pages\404.blade.php (changed)

A large number of Blade views have also changed. You may want to update pretty much all of them. See the diff for a list of files that have changed.

Updating Composer

When updating an existing project, you may need to add laravel-zero/framework to your Hyde composer.json file.

1"require": {
2 "php": "^8.0",
3 "hyde/framework": "^0.50",
4 "laravel-zero/framework": "^9.1"
5},

Using the new site config

Site-specific config options have been moved from config/hyde.php to config/site.php. The Hyde config is now used to configure behaviour of the site, while the site config is used to customize the look and feel, the presentation, of the site.

The following configuration options have been moved. The actual usages remain the same, so you can upgrade by using copying over these options to the new file.

  • hyde.name
  • hyde.site_url (is now just site.url)
  • hyde.pretty_urls
  • hyde.generate_sitemap
  • hyde.language
  • hyde.output_directory

If you have published and Blade views or written custom code that uses the config options, you may need to update them. You can do this by republishing the Blade views, and/or using search and replace across your code. VSCode has a useful feature to make this a breeze: CMD/CTRL+Shift+F.

Using the new footer config

The footer configuration options have been merged. Prior to this update, the config option looked as follows:

Filepath: config/hyde.php
1'footer' => [
2 'enabled' => true,
3 'markdown' => 'Markdown text...'
4],

Now, the config option looks as follows:

Filepath: config/hyde.php
1// To use Markdown text
2'footer' => 'Markdown text...',
3 
4// To disable it completely
5'footer' => false,

As you can see, the new config option is a string or the boolean false instead of an array. We use the same option for both the Markdown text and the footer disabled state.

Updating Blade Documentation Views

This release rewrites almost all of the documentation page components to use TailwindCSS. In most cases you won't need to do anything to update, however, if you have previously published the documentation views, you will need to update them.

Release Notes for HydeFront v2.x

HydeFront version 2.0 is a major release and has several breaking changes. It is not compatible with HydePHP versions lower than v0.50.0-beta. HydePHP versions equal to or later than v0.50.0-beta require HydeFront version 2.0 or higher.

Many files have been removed, as HydePHP now uses Alpine.js for interactions, and TailwindCSS for the documentation pages.

HydeFront v1.x will receive security fixes only.

v0.49.0-beta - 2022-07-15

Added

  • Added configuration option to quickly enable HTML tags in Markdown

Changed

  • The DataCollection module now no longers filters out files starting with an underscore
  • Moves the scripts that create the documentation page search window to HydeFront CDN
  • Updated autoloaded HydeFront version to 1.13.x

v0.48.0-beta - 2022-07-10 - Internal Pseudo-Router Service Refactoring

About

This release brings a massive refactor in the way the HydePHP auto-discovery process works. It does this by centralizing all discovery logic to the new pseudo-router module which discovers and maps all source files and output paths.

The update also refactors related code to use the router. Part of this is a major rewrite of the navigation menu generation. If you have set any custom navigation links you will need to update your configuration files as the syntax has changed to use the NavItem model instead of array keys.

You will also need to update navigation related Blade templates, if you have previously published them.

Added

  • Added a pseudo-router module which will internally be used to improve Hyde auto-discovery
  • Added a Route facade that allows you to quickly get a route instance from a route key or path
  • Added a new NavItem model to represent navigation menu items
  • Added a new configuration array for customizing the navigation menu, see the hyde.navigation array config

Changed

  • Changed how the navigation menu is generated, configuration files and published views must be updated
  • Changed bootstrap.php to Stt Hyde base path using dirname instead of getcwd
  • Reversed deprecation for StaticPageBuilder::$outputPath
  • internal refactor: Creates a new build service to handle the build process

Deprecated

  • Deprecated DiscoveryService::findModelFromFilePath() - Use the Router instead.
  • Deprecated DiscoveryService.php - Use the Router instead. (Some helpers may be moved to FluentPathHelpers.php)

Removed

  • The "no pages found, skipping" message has been removed as the build loop no longer recieves empty collections.
  • Removed the hyde.navigation_menu_links and hyde.navigation_menu_blacklist configuration options, see new addition above.

v0.47.0-beta - 2022-07-05

Added

  • Add macroable trait to Hyde facade

v0.46.0-beta - 2022-07-03

Added

  • Added DocumentationPage::indexPath(), replacing Hyde::docsIndexPath()

Changed

  • internal: Move service provider helper methods to the RegistersFileLocations trait
  • internal: Add helpers.php to reduce repeated code and boilerplate
  • internal: Change internal monorepo scripts for semi-automating the release process
  • Added DocumentationPage as a class alias, allowing you to use it directly in Blade views, without having to add full namespace.

Removed

  • Remove deprecated Hyde::getDocumentationOutputDirectory(), replaced with DocumentationPage::getOutputDirectory()
  • Remove deprecated Hyde::docsIndexPath(), replaced with DocumentationPage::indexPath()
  • Remove deprecated DocumentationPage::getDocumentationOutputPath(), use DocumentationPage::getOutputPath() instead

Fixed

  • Fix minor bug in Blade view registry where merged array was not unique

v0.45.0-beta - 2022-07-03

Added

Changed

  • DataCollections are now disabled by default
  • Rename internal trait RegistersDefaultDirectories to RegistersFileLocations

Removed

  • Removes the automatic check to see if the configuration file is up to date https://github.com/hydephp/develop/pull/143
  • Remove deprecated Hyde::titleFromSlug() helper, use Hyde::makeTitle() instead
  • Removed deprecated CollectionService::getBladePageList, is renamed to getBladePageFiles
  • Removed deprecated CollectionService::getMarkdownPageList, is renamed to getMarkdownPageFiles
  • Removed deprecated CollectionService::getMarkdownPostList, is renamed to getMarkdownPostFiles
  • Removed deprecated CollectionService::getDocumentationPageList, is renamed to getDocumentationPageFiles

Fixed

v0.44.0-beta - 2022-07-02 - Internal code restructuring

About

This release mainly makes internal changes to the Framework API. If you are an end user, most of the changes are not relevant. However, if you are a package developer, or if you have published Blade views or otherwise extended Hyde you may want to take a look as there are internal breaking changes.

Added

  • Added Hyde::makeTitle() helper, an improved version of Hyde::titleFromSlug()
  • Added new helper method render() to MarkdownDocuments to compile the Markdown to HTML, fixes https://github.com/hydephp/develop/issues/109
  • Added MarkdownPost as a class alias, allowing you to use it directly in Blade views, without having to add full namespace.

Changed

  • Update default HydeFront version to v1.12.x
  • Updates the codebase to use the new Hyde::makeTitle() helper
  • Several internal changes to how page models are structured, https://github.com/hydephp/develop/pull/122
  • Internal: Separate the MarkdownDocument into a dedicated abstract page class, https://github.com/hydephp/develop/pull/126
  • Moved Hyde\Framework\Models\BladePage to new namespace Hyde\Framework\Models\Pages\BladePage
  • Moved Hyde\Framework\Models\MarkdownPage to new namespace Hyde\Framework\Models\Pages\MarkdownPage
  • Moved Hyde\Framework\Models\MarkdownPost to new namespace Hyde\Framework\Models\Pages\MarkdownPost
  • Moved Hyde\Framework\Models\DocumentationPage to new namespace Hyde\Framework\Models\Pages\DocumentationPage
  • Improves how the site output directory is emptied, helping prevent accidental deletion of files https://github.com/hydephp/develop/pull/135
  • The emptying of the site output directory can now be disabled by setting the new config option hyde.empty_output_directory to false https://github.com/hydephp/develop/pull/136

Deprecated

  • Deprecated Hyde::titleFromSlug(), use Hyde::makeTitle() instead
  • Deprecate DocumentationPage::getDocumentationOutputPath()
  • Deprecate Hyde::docsIndexPath()
  • Deprecate Hyde::getDocumentationOutputDirectory()
  • Deprecate RegistersDefaultDirectories.php pending rename
  • Deprecated CollectionService::getBladePageList, is renamed to getBladePageFiles
  • Deprecated CollectionService::getMarkdownPageList, is renamed to getMarkdownPageFiles
  • Deprecated CollectionService::getMarkdownPostList, is renamed to getMarkdownPostFiles
  • Deprecated CollectionService::getDocumentationPageList, is renamed to getDocumentationPageFiles

Removed

  • Remove unused $withoutNavigation variable from the app layout
  • Removed deprecated 'hyde.site_output_path' config option (use hyde.output_directory instead)
  • Remove long deprecated hyde.version and framework.version service container bindings
  • Removed deprecated StarterFileService which was deprecated in v0.20.x

Fixed

v0.43.0-beta - 2022-06-25 - File-based Collections

Added

Removed

  • Removed the --pretty build command option which was deprecated in v0.25.x
  • Removed deprecated internal AssetManager trait which was replaced with the Asset facade

Fixed

  • HydeRC: Fixes a bug in the auxiliary exception handler leading to unintentional recursion causing out of memory errors in both the browser and the PHP server.

v0.42.0-beta - 2022-06-24

Added

Changed

  • Change the the Prettier integration to only modify HTML files https://github.com/hydephp/develop/issues/102
  • Change how the docs/search.html page is rendered, by handling page logic in the view, to decouple it from the build search command

Fixed

v0.41.0-beta - 2022-06-24 - Add an Asset facade

About

This release refactors and improves the Asset Service, adding auto-configuration features and a new Asset facade.

Using the Asset facade in Blade views

Instead of the long syntax Hyde::assetManager() you can now use the Asset facade directly. See this example, which both do the exact same thing using the same underlying service:

1Hyde::assetManager()->hasMediaFile('app.css')
2Asset::hasMediaFile('app.css')

If you don't know what any of this means, good news! You don't have to worry about it. Hyde's got your back.

Added

  • Added feature to dynamically load hyde.css and hyde.js if they exist locally
  • Added the Asset facade to be used instead of Hyde::assetManager()
  • Added the Asset facade as a class alias to config/app.css

Changed

  • Changed scripts.blade.php and styles.blade.php to use the Asset facade

Deprecated

  • Deprecated AssetManager.php (Hyde::assetManager()). Use the Asset facade instead

v0.40.0-beta - 2022-06-22

Added

  • Added back the AppServiceProvider
  • Added system for defining easy to use post-build hooks https://github.com/hydephp/develop/issues/79
  • Added configuration option to exclude documentation pages from showing up in the JSON search index

Changed

  • Changelog files in the documentation source directory are now ignored by the JSON search index by default
  • Adds a fallback which removes the search modal popup and redirects to the search.html page when the dialogue element is not supported.

Deprecated

  • Deprecate the site_output_path option in the Hyde config file. Will be handled by the HydeServiceProvider.

Removed

  • Removed the deprecated bootstrap directory
  • Removed default .gitkeep from the _site directory

Security

  • Bump guzzlehttp/guzzle from 7.4.4 to 7.4.5

v0.39.0-beta - 2022-06-20

Added

  • Added a helper to all page models to get an array of all its source files https://github.com/hydephp/develop/issues/44
  • Added a helper to all page models to parse source files directly into an object https://github.com/hydephp/develop/issues/40
  • Adds the MarkdownDocumentContract interface to markdown based pages to keep a consistent and predictable state
  • Adds .gitkeep files to persist empty directories
  • internal: Add more tests
  • internal: Add packages/hyde/composer.json for persisted data instead of removed update script

Changed

  • Changed welcome page title https://github.com/hydephp/develop/issues/52
  • Add rel="nofollow" to the image author links https://github.com/hydephp/develop/issues/19
  • Changed the default position of the automatic navigation menu link to the right, also making it configurable
  • Renamed deprecated Hyde::docsDirectory() helper to suggested Hyde::getDocumentationOutputDirectory()
  • Makes the constructor arguments for Markdown page models optional https://github.com/hydephp/develop/issues/65
  • Added the Hyde/Framework composer.lock to .gitignore as we keep a master lock file in the monorepo
  • Changed namespace for Hyde/Framework tests from Hyde\Testing\Framework to Hyde\Framework\Testing
  • Directories are created when needed, instead of each time the service provider boots up
  • internal: Add back codecov.io to pull request tests https://github.com/hydephp/develop/issues/37
  • internal: Refactor test that interact with the filesystem to be more granular
  • internal: Update Monorepo structure to move persisted data for the Hyde package into the packages directory

Removed

  • Removed the Hyde::getLatestPosts() helper which was deprecated in v0.34.x and was replaced with MarkdownPost::getLatestPosts()
  • Removes the long deprecated CreatesDefaultDirectories class
  • internal: Removed composer update script

Fixed

v0.38.0-beta - 2022-06-18

About

This release refactors the test suite, compartmentalizing test code into the respective package directories. This does not affect the behavior of the library, but it does affect how package developers run the test suites.

Added

  • internal: Adds high level tests for the Hyde package.
  • internal: Add GitHub test workflows for Hyde/Hyde and Hyde/Framework

Changed

  • Formats code to the PSR-2 standard.

  • internal: Move Framework tests from the monorepo into the Framework package.

  • internal: Rename monorepo workflow build-test.yml to continuous-integration.yml.

  • internal: Change testing namespaces update phpunit.xml.dist correspondingly.

  • internal: Add static analysis tests to the continuous integration workflow.

  • internal: Add matrix test runners to the continuous integration workflow.

v0.37.2-beta - 2022-06-17

About

This release brings internal restructuring to the Hyde monorepo, adding a helper command to manage the new release cycle.

Added

  • Add internal monorepo:release command

Changed

  • Changed to keep only a single CHANGELOG.md file for Hyde/Hyde and Hyde/Framework

v0.37.1-beta - 2022-06-16 - Update validation test

About

If there are no documentation pages there is no need for an index page, and the test can safely be skipped.

What's Changed

Full Changelog: https://github.com/hydephp/develop/compare/v0.36.0-beta...v0.37.1-beta

v0.37.0-beta - 2022-06-16 - Replace dependency with custom validator implementation

What's Changed

Full Changelog: https://github.com/hydephp/develop/compare/v0.36.0-beta...v0.37.0-beta.1

v0.36.0-beta - 2022-06-16 - Add package auto-discovery

What's Changed

Full Changelog: https://github.com/hydephp/develop/compare/v0.35.0-beta.1...v0.36.0-beta

v0.35.0-beta - 2022-06-14 - Initial Monorepo Release

What's Changed

Full Changelog: https://github.com/hydephp/develop/commits/v0.35.0-beta


Archive (pre v0.35.0)

In v0.35.0 the Hyde project source was moved into the HydePHP/Develop monorepo where the changelog is now handled. Releases in Hyde/Hyde and Hyde/Framework are synced one-to-one since this change.

Hyde/Hyde Archive (pre v0.35.0)

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by auto-changelog.

v0.34.1-beta

11 June 2022

  • Bump guzzlehttp/guzzle from 7.4.3 to 7.4.4 #187

v0.34.0-beta

6 June 2022

v0.33.0-beta

4 June 2022

v0.32.3-beta

4 June 2022

  • Move back hyde/realtime-compiler to hyde/hyde #184
  • Update composer.lock b36937d

v0.32.2-beta

4 June 2022

  • Persist file cache data directory 347e393
  • Create cache .gitignore 14e57b6

v0.32.1-beta

4 June 2022

  • Update frontend and framework files #180
  • Update composer.lock 62b9b4e
  • Automatic build update 626983a

v0.32.0-beta

4 June 2022

  • Update composer.lock e26171a
  • Remove composer requirements handled by Framework b04754b
  • Update Hyde/Framework to v0.32.x 4cd1161

v0.31.0-beta

4 June 2022

  • Update frontend and framework files #177
  • Update to Framework 0.31.x 2da64b4
  • Automatic build update 9a59cb6

v0.30.1-beta

31 May 2022

  • Fix package.json version formatting error #175

v0.30.0-beta

31 May 2022

v0.29.0-beta

30 May 2022

  • Update frontend and framework files #172
  • Fix #169: remove white-space: pre from <code>, allowing it to wrap #170
  • Merge pull request #170 from hydephp/Update-tailwind-config-to-allow-code-tags-to-wrap #169
  • Fix #169: remove white-space: pre from <code> #169
  • Update lock file f037c4d
  • Update hyde/realtime-compiler to v1.3.0 91e822a
  • Update to Framework v0.29.0-beta 9a624de

v0.28.1-beta

29 May 2022

  • Bump guzzlehttp/guzzle from 7.4.2 to 7.4.3 #167

v0.28.0-beta

23 May 2022

v0.27.1-beta

21 May 2022

  • Upgrade hyde/framework v0.27.5-beta => v0.27.11-beta 809c700

v0.27.0-beta

19 May 2022

v0.26.0-beta

18 May 2022

  • Update to v0.26.x 123bdeb
  • Breaking: Update config to v0.26.x-dev-master 268b2a6
  • Update framework to dev-master ddc37cf

v0.25.0-beta

17 May 2022

  • Update frontend and framework files #161
  • Update frontend and framework files #159
  • Update to v0.25.x 497d540
  • Automatic build update 64c2bd6
  • Automatic build update 915cab8

v0.24.1-beta

11 May 2022

v0.24.0-beta

11 May 2022

  • Update dependencies for release 575338d

v0.23.0-beta

6 May 2022

  • Update frontend and framework files #152
  • Run cache after installing 25f8581
  • Update hyde/framework cc66395

v0.22.0-beta

4 May 2022

  • Update frontend and framework files #149
  • Fix #146 by adding _pages to Tailwind content #148
  • Add back _site to Tailwind content array #147
  • Update frontend and framework files #143
  • Merge pull request #148 from hydephp/caendesilva-patch-1 #146
  • Fix #146 by adding _pages to Tailwind content #146
  • Automatic build update 5f656d0
  • Remove reliance on deprecated service 71bb359

v0.21.0-beta

3 May 2022

v0.20.0-beta

3 May 2022

  • Update max-width for blog posts #139
  • Update config to v0.20.x 87c6748
  • Rename workflow and jobs c67f2c0

v0.19.0-beta

1 May 2022

  • Update frontend assets #136
  • Update frontend assets #134
  • Add Laravel Mix #124 #129
  • Fix #127 #127
  • Clone repo directly to fix #133 #133
  • Fix #131 #131
  • Add Laravel Mix dc62438
  • Remove laminas/laminas-text fa23c60
  • Add PostCSS db399c4

v0.18.0-beta

29 April 2022

v0.17.1-beta

28 April 2022

  • Remove compiled files and fix wrong homepage layout f92e4b7

v0.17.0-beta

28 April 2022

v0.16.1-beta

28 April 2022

  • Delete codeql as the JS has moved to HydeFront ef7e94e
  • Change test coverage to code reports b1fd3e9
  • Add more reporting outputs a4ac8e6

v0.16.0-beta

27 April 2022

v0.15.0-beta

27 April 2022

  • Remove files moved to CDN 521d790
  • Update tests for removed frontend assets fa68c37

v0.14.0-beta

21 April 2022

v0.13.0-beta

20 April 2022

  • Remove BrowserSync and other dependencies #93
  • Create the tests f30c375
  • Republish the config c290249
  • Update tests for 0.13.x f6de746

v0.12.0-beta

19 April 2022

v0.11.0-beta

17 April 2022

  • Add the realtime compiler extension 90989c1
  • Streamline Readme 5860c04

v0.10.0-beta

12 April 2022

v0.9.0-alpha

7 April 2022

  • Change where and how stylesheets and scripts are stored and handled #63
  • Move the resource files fb3b660
  • Add the test 51d99b2
  • Publish the resources bf3b20d

v0.8.0-alpha

3 April 2022

  • Clean up test code and fix mismatched test namespace #59
  • Update the navigation menu frontend #58
  • Add Changelog.md 9bff522
  • Create CODE_OF_CONDUCT.md ffde383
  • Create a test runner with a backup feature 605ed46

v0.7.3-alpha

1 April 2022

  • Fix outdated welcome page links 323ea17

v0.7.2-alpha

1 April 2022

v0.7.1-alpha

1 April 2022

  • Add SASS as a dev dependency #55

v0.7.0-alpha

1 April 2022

  • Remove _authors and _drafts directories #48 #53
  • Create the first two tests fdd197c
  • Create the test 6c43c41
  • Update author yml config path 67af952

v0.6.0-alpha

30 March 2022

  • Move scripts into app.js #51
  • Update command class names #49
  • Update to latest Framework version 24d666d
  • Add the test 3554c33
  • 0.6.0 Add the test 0e99c56

v0.5.0-alpha

25 March 2022

v0.4.1-alpha

25 March 2022

  • Bump minimist from 1.2.5 to 1.2.6 #47
  • #37 Add more tests: HydeServiceProvider ae8673f
  • Inline the stream variable to fix missing file error bca234c
  • Update to Framework 0.5.1 449e051

v0.4.0-alpha

24 March 2022

  • 0.4.0 Update which adds several new tests tying into framework v0.5.0 #46
  • Format tests to PSR2 e08aba6
  • Create test for publish homepage command 4e0f828
  • Update framework version to tie into new release e4944c8

v0.3.3-alpha

23 March 2022

  • Unlock framework version to patch error in last release 4423513
  • Update config a480b0a

v0.3.2-alpha

23 March 2022

  • Increase link contrast to fix accessibility issue #45
  • Add the Site URL setting 05211b9
  • Update config 8c0d331
  • Remove dev files from gitignore f52d471

v0.3.1-alpha

23 March 2022

  • Replace the default empty blog listing index page with a new welcome screen #44
  • Replace the default page d747290
  • Add the links b8cd49c
  • Add info about the new build --clean option efca81f

v0.3.0-alpha

22 March 2022

  • v0.3 - Hyde Core Separation - Contains breaking changes #36
  • Hyde Core Separation - Contains breaking changes #35
  • Allow the view source directory to be modified at runtime #34
  • Add a path helper to unify path referencing #33
  • Successfully moved Core into temporary package d5a8dc1
  • Move app font to vendor e43da1d
  • Remove legacy stubs and test 8740cc2

v0.2.1-alpha

21 March 2022

  • Add a customizable footer #31
  • Adds a customizable footer 09813cf
  • Clarify comments in configuration file 09a7e64
  • Compile frontend assets fdb68d5

v0.2.0-alpha

21 March 2022

  • Add responsive navigation to resolve #7 #30
  • Add support for images #29
  • Fix bug #22 where the feed was not sorting the posts by date #28
  • Overhaul the navigation menu to add configuration options #27
  • Improve the front matter parser to fix #21 #23
  • Check for the app env in the .env file #20
  • Add the Torchlight badge automatically #19
  • #14 Add publishable 404 pages #18
  • Create Validator command to help catch any issues in the setup #17
  • Merge pull request #30 from hydephp/7-feature-make-the-navigation-menu-responsive #7
  • Add a navigation menu blacklist, fixes #26 #26
  • Fix #25, automatically add link to docs #25
  • Merge pull request #23 from hydephp/21-bug-front-matter-parser-not-stripping-quotes #21
  • Improve the front matter parser to fix #21 #21
  • Fix #15, remove redundant values from created file #15
  • Add the stubs 5416fd2
  • Add tests 9284a5a
  • Implement #16, add custom navigation links 1007d0d

v0.1.1-pre.patch

19 March 2022

  • Patches #12, Sev2 Bug: Compiler not using Markdown ad640de

v0.1.1-pre

19 March 2022

  • Merge 1.x #2
  • Fix #6, handle missing docs index #6
  • Update installation instructions 785a450
  • Add command for making arbitrary navigation links 3970d57
  • Create codeql-analysis.yml 5a6f7ad

v0.1.0-pre

18 March 2022

Hyde/Framework Archive (pre v0.35.0)

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by auto-changelog.

v0.34.0

6 June 2022

  • Deprecate Hyde::features(), use Hyde::hasFeature() instead #523
  • Create image link helper, fix #434 #522
  • Create a PageModel contract and helpers to get parsed model collections #521
  • Merge pull request #522 from hydephp/create-image-file-object #434
  • Add image path helper, fix #434 #434
  • Fix #516 Add Composer validation to the test suite #516
  • Move the static::all() helper to AbstractPage c726ad7
  • Create MarkdownPost::latest() e6d9e4a
  • Implement MarkdownPost::all() cda2010

v0.33.0-beta

4 June 2022

v0.32.1-beta

4 June 2022

  • Move back hyde/realtime-compiler to hyde/hyde #517
  • Update composer.lock 246da42
  • Update composer.lock 9e835b6

v0.32.0-beta

4 June 2022

  • Refactor to use Laravel cache helper instead of custom implementation #514
  • Improve metadata for featured post images #512
  • Skip generating auxiliary files in the main built loop when there is no underlying content #511
  • Fix: #506: Move ext-simplexml in composer.json to suggest as it is not a strict dependency #510
  • Rewrite Realtime Compiler #508
  • Fix #496: Missing image "contentUrl" metadata #496
  • Don't create search files when there are no pages #482
  • Update Hyde Realtime Compiler to v2.0 f917319
  • Delete RELEASE-NOTES-DRAFT.md 9853526
  • Remove pre-check as package is always included 076a1be

v0.31.1-beta

3 June 2022

v0.31.0-beta

2 June 2022

  • Fix #499: Make the search dialog positioning fixed #503
  • Make documentation pages smarter #501
  • Link to markdown source files #498
  • Fix #490 Make heading permalinks visible #493
  • Add Markdown Post/Preprocessors #488
  • Merge pull request #503 from hydephp/499-make-the-search-menu-dialog-position-fixed #499
  • Fix #499: Make the search dialog positioning fixed #499
  • Merge pull request #493 from hydephp/make-heading-permalinks-visible #490
  • Fix #490 Make heading permalinks visible #490
  • Merge unit tests into single feature test c455d1c
  • Use the same static transformation instead of DOM bdba273
  • Document the edit button feature dc0d9d7

v0.30.1-beta

31 May 2022

v0.30.0-beta

31 May 2022

  • Add inline Blade support to markdown #478
  • Create page and document Blade-supported Markdown 0d7ae0f
  • Add base tests ae4b0dc
  • Sketch out the service class 4b88214

v0.29.5-beta

31 May 2022

v0.29.4-beta

30 May 2022

  • Add color-scheme meta, fix #460 #460
  • Try to figure out why Codecov is not working 9d3371c
  • Revert codecov changes b253969

v0.29.3-beta

30 May 2022

  • Fix Bug #471: og:title and twitter:title should use the page title, and only use config one as fallback #473
  • Fix bug #471, make title metadata dynamic b9ac1c8
  • Make dynamic meta title use title property instead 6aaa612

v0.29.2-beta

30 May 2022

  • Add !important to style override 3e28b1d

v0.29.1-beta

30 May 2022

  • Use the config defined output path 927072e
  • Update Readme heading to "The Core Framework" 7a89486

v0.29.0-beta

30 May 2022

  • Load HydeFront v1.9.x needed for HydeSearch #468
  • Make the search feature configurable and toggleable #467
  • Add the HydeSearch frontend integration for documentation pages #465
  • Create the backend search index generation for documentation pages #459
  • Bump guzzlehttp/guzzle from 7.4.2 to 7.4.3 #456
  • Refactor inline styles to HydeFront Sass 86fff1d
  • Begin sketching out the class ed131bd
  • Extract search widget to component 420f662

v0.28.1-beta

25 May 2022

  • Fix #450: Add custom exceptions #454
  • Refactor author configuration system #449
  • Merge pull request #454 from hydephp/450-add-custom-exceptions #450
  • Remove AuthorService 9f9d64d
  • Clean up code f8452b9
  • Create FileConflictException 02d534c

v0.28.0-beta-pre

22 May 2022

v0.28.0-beta

23 May 2022

  • Refactor author configuration system #449
  • Refactor configuration to use snake_case for all options, and extract documentation settings to own file #444
  • Remove AuthorService 9f9d64d
  • Extract documentation configuration options to docs.php 92b9ae5
  • Use the snake_case config format f578855

v0.27.12-beta

22 May 2022

  • Code cleanup without affecting functionality #440
  • Add missing return type declarations 684b792
  • Add PHPDoc comments with @throws tags ae44806

v0.27.11-beta

21 May 2022

  • Fix #429: Add page priorities to sitemap generation #437
  • Merge pull request #437 from hydephp/add-dynamic-page-priorities-for-sitemap #429
  • Add page priority support 0bfbbba

v0.27.10-beta

20 May 2022

  • Improve RSS image handling and feed and sitemap generation processes #435
  • Create HydeBuildRssFeedCommand.php ac4788f
  • Create build:sitemap command 82c73a3
  • Fetch information for local images a10c1c3

v0.27.9-beta

20 May 2022

  • Rename and restructure internal hooks 0562ae3
  • Update test code formatting 1a9dcaf
  • Add sitemap link test 9ba7b10

v0.27.8-beta

19 May 2022

v0.27.7-beta

19 May 2022

v0.27.6-beta

19 May 2022

  • Add deployment documentation 4b188f2
  • Merge sections to be more compact baadd48
  • Restructure document flow 40f4a3d

v0.27.5-beta

19 May 2022

  • Fix bug where categorized documentation sidebar items were not sorted #422
  • Fix #367: Add upcoming documentation files #367
  • Create building-your-site.md 6989bd5
  • Update documentation page orders b38c58b

v0.27.4-beta

19 May 2022

  • Fix #419: Add meta links to the RSS feed #419
  • Refactor internal helpers to be public static 283e5d2
  • Add page slug for compatibility, fixing bug where Blade pages did not get canonical link tags d3ac8e4

v0.27.3-beta

19 May 2022

  • Add unit test for fluent Markdown post helpers 2a3b90b
  • Add Author::getName() unit test 64616a6
  • Change RSS feed default filename to feed.xml d545b07

v0.27.2-beta

19 May 2022

  • Add RSS feed for Markdown blog posts #413
  • Add the RSSFeedService test a21596f
  • Add the initial channel items 9cb9b30
  • Update sitemap tests and add rss feed tests fe93f5b

v0.27.1-beta

18 May 2022

  • Fix #403: Remove @HydeConfigVersion annotation from config/hyde.php #408
  • Merge pull request #408 from hydephp/remove-hydeconfigversion-annotation-from-hyde-config #403
  • Remove HydeConfigVersion annotation 84b1602

v0.27.0-beta

18 May 2022

  • Add sitemap.xml generation #404
  • Add SitemapService tests ce5d8ed
  • Refactor shared code into new helper 46f41d6
  • Create basic sitemap generator 1f66928

v0.26.0-beta

18 May 2022

  • Fix #398: Remove the deprecated Metadata model #400
  • Fix #379: Extract menu logo to component #396
  • Update helper namespaces #395
  • Fix #385: Move page parsers into models/parsers namespace #394
  • Remove redundancy and merge Meta and Metadata models #384 #390
  • Unify the $page property and add a fluent metadata helper #388
  • Merge pull request #400 from hydephp/398-remove-legacy-metadata-model #398
  • Merge pull request #396 from hydephp/extract-navigation-menu-logo-to-component-to-make-it-easier-to-customize #379
  • Fix #379: Extract menu logo to component #379 #379
  • Merge pull request #394 from hydephp/385-move-page-parsers-into-a-namespace #385
  • Fix #385: Move page parsers into a namespace #385
  • Fix #382: Unify the $page property #382
  • Fix #375, Add config option to add og:properties #375
  • Extract metadata helpers to concern 72b1356
  • Add test for, and improve Meta helper 15ccd27
  • Refactor concern to not be dependent on Metadata model b247bb0

v0.25.0-beta

17 May 2022

  • Load asset service from the service container #373
  • Rename --pretty option to --run-prettier to distinguish it better in build command #368
  • Allow site output directory to be customized #362
  • Configuration and autodiscovery improvements #340
  • Add configurable "pretty URLs" #354
  • Add sidebar config offset, fix #307 #348
  • Change BuildService to DiscoveryService #347
  • Fix #361 Rename --pretty option to --run-prettier #361
  • Fix #350, Use the model path properties #350
  • Add option for pretty urls fix #330 #330
  • Rewrite index docs path to pretty url, fix #353 #353
  • Fix #330, Create helper to make pretty URLs if enabled #330
  • Merge pull request #348 from hydephp/add-sidebar-priority-offset-for-config-defined-values #307
  • Add sidebar config offset, fix #307 #307
  • Fix #343 #343
  • Restructure the tests 41bd056
  • Add helpers to make it easier to refactor source paths 10e145e
  • Utalize the $sourceDirectory property in build services 9d9cbff

v0.24.0-beta

11 May 2022

  • Add documentation sidebar category labels, fixes #309 #326
  • Merge pull request #326 from hydephp/309-add-documentation-sidebar-category-labels #309
  • Sketch out the files for the category integration d6c81bb
  • Implement category creation 70448b1
  • Set category of uncategorized items 9f0feb3

v0.23.5-beta

11 May 2022

  • Add back skip to content button to Lagrafo docs layout, fix #300 #322
  • Change max prose width of markdown pages to match blog posts, fix #303 #321
  • Fix #153, bug where config option uses app name instead of Hyde name. #320
  • Add option to mark site as installed, fix #289 #289
  • Merge pull request #322 from hydephp/300-add-back-skip-to-content-button-to-lagrafo-docs-layout #300
  • Add skip to content button docs layout, fix #300 #300
  • Merge pull request #321 from hydephp/303-change-max-width-of-markdown-pages-to-match-blog-posts #303
  • Change max width to match blog posts, fix #303 #303
  • Merge pull request #320 from hydephp/294-fix-bug-where-config-option-uses-app-name-instead-of-hyde-name #153
  • #153 Fix bug where config option uses app name instead of Hyde name. c90977c
  • Update install command for new site name syntax 0687351

v0.23.4-beta

11 May 2022

  • Refactor post excerpt component to be less reliant on directly using front matter and add view test #318
  • Formatting: Add newline after console output when running build without API calls, fix #313 #316
  • Fix #314, add background color fallback to documentation page body #315
  • Restructure and format component, fix #306 #306
  • Merge pull request #316 from hydephp/313-formatting-add-newline-after-disabling-external-api-calls-in-build-command #313
  • Formatting: Add newline after --no-api info, fix #313 #313
  • Merge pull request #315 from hydephp/314-add-dark-mode-background-to-body-in-documentation-pages-to-prevent-fouc #314
  • Fix #314, add background color fallback to docs body #314
  • Implement hidden: true front matter to hide documentation pages from sidebar, fix #310 #310
  • Create ArticleExcerptViewTest.php 4a3ecaa
  • Add tests for the fluent date-author string 30f7f67

v0.23.3-beta

10 May 2022

  • Fix #310, allow documentation pages to be hidden from sidebar using front matter #311
  • Merge pull request #311 from hydephp/310-implement-hidden-true-front-matter-to-hide-documentation-pages-from-sidebar #310
  • Fix #310, allow items to be hidden from sidebar with front matter #310

v0.23.2-beta

7 May 2022

  • Refactor documentation sidebar internals #299
  • Create feature test for the new sidebar service 0adf948
  • Remove deprecated action 063a85a
  • Create the sidebar models fbcae7c

v0.23.1-beta

6 May 2022

  • Add the test helper files 3cd5a56
  • Test description has warning for out of date config a90c0b1
  • Delete .run directory 8cd71fc

v0.23.0-beta

6 May 2022

  • Refactor docs layout to use Lagrafo instead of Laradocgen #292
  • Port lagrafo (wip) 6ca2309
  • Move all head tags into blade component 3093ebf
  • Use the Hyde layout e09e301

v0.22.0-beta

5 May 2022

  • Update HydeFront version to v1.5.x #287
  • Refactor script interactions #286
  • Hide the install command once it has been run, fix #280 #280
  • Hide the install command once it has been run, fix #280 #280
  • Replace onclick with element IDs e97d545
  • Move dark mode switch 9f6fdf8

v0.21.6-beta

4 May 2022

  • Create installer command, fix #149 #279
  • Merge pull request #279 from hydephp/149-create-installer-command #149
  • Create Install command that can publish a homepage b890eb7
  • Use installer to set the site name in config 3f0c843
  • Use installer to set the site URL in config d5f56ac

v0.21.5-beta

3 May 2022

  • Update the test to fix updated exception output and remove comments cd5a70d

v0.21.4-beta

3 May 2022

v0.21.3-beta

3 May 2022

  • Allow documentation pages to be scaffolded using the make:page command #273
  • Allow documentation pages to be scaffolded using the command 7bbe012

v0.21.2-beta

3 May 2022

  • Send a non-intrusive warning when the config file is out of date #270
  • Create crude action to check if a config file is up to date e31210f
  • Create FileCacheServiceTest d9141cc
  • Add the test ee4a64d

v0.21.1-beta

3 May 2022

  • Create filecache at runtime instead of relying on a JSON file that needs to be up to date #265
  • Create the filecache at runtime, resolves #243, #246 #243
  • Remove deprecated filecache store and generator 7a1eb32
  • Remove "Update Filecache" workflow 81564c0
  • Remove legacy try/catch 34733dd

v0.21.0-beta

3 May 2022

  • Always empty the _site directory when running the static site build command #262
  • Always purge output directory when running builder a86ad7d

v0.20.0-beta

2 May 2022

  • Update Filecache #258
  • Remove HydeFront from being bundled as a subrepo #257
  • Change the action used to create pull requests #255
  • Exclude files starting with an underscore from being compiled into pages, fix #220 #254
  • Create .gitattributes, fixes #223 #250
  • Deprecate filecache.json and related services #248
  • Allow documentation sidebar header name to be changed #245
  • Update Filecache #242
  • Fix bugs in article and excerpts not fluently constructing descriptions #241
  • Handle undefined array key title in article-excerpt.blade.php #238
  • Fix test matrix not fetching proper branch on PRs #235
  • Fix sidebar ordering bug by using null coalescing operator instead of elvis operator #234
  • Add unit test for hasDarkmode, fix #259 #259
  • Add the test, resolves #259 #259
  • Merge pull request #254 from hydephp/220-exclude-files-starting-with-an-_underscore-from-being-compiled-into-pages #220
  • Merge pull request #250 from hydephp/add-gitattributes #223
  • Create .gitattributes, fixes #223 #223
  • Make category nullable, fixes #230 #230
  • Fix #240 #240
  • Handle undefined array key, fixes #229 #229
  • Remove the HydeFront subrepo d406202
  • Add test to ensure that post front matter can be omitted 875c6d4
  • Exclude files starting with an _underscore from being discovered 0dcdcb6

v0.19.0-beta

1 May 2022

  • Update Filecache #226
  • Add config option to disable dark mode #225
  • Update Filecache #222
  • Refactor assets managing, allowing for Laravel Mix, removing CDN support for Tailwind #221
  • Fix #211 #211
  • Add test and clean up docs for HasMetadata 976cb6c
  • Revert "Update update-filecache.yml" abc21e7
  • Update update-filecache.yml c25196a

v0.18.0-beta

29 April 2022

  • Update Filecache #201
  • Update Filecache #199
  • Update Filecache #197
  • Change priority of stylesheets #195
  • Update Filecache #194
  • Switch jsDelivr source to NPM, fix #200 #200
  • Update dependencies b505726
  • Switch to using TypeScript 6fa9e6c
  • Create service class to help with #182 fb0033c

v0.17.0-beta

28 April 2022

  • Add the code reports workflow #191
  • Move test suite actions to framework #190
  • Merge with master #189
  • Add matrix tests #188
  • Move part one of the test suite #187
  • Move Framework tests from Hyde/Hyde to the Hyde/Framework package #185
  • Move tests from Hyde to Framework 22ca673
  • Format YAML e6da9ad
  • Add the workflow b20cbd6

v0.16.1-beta

28 April 2022

  • Manage asset logic in service class c72905f

v0.16.0-beta

27 April 2022

  • Refactor internal codebase by sorting traits into relevant namespaces #175
  • Refactor: Move Hyde facade methods to traits 9b5e4ca
  • Refactor: Update namespaces 96c73aa
  • Docs: Remove PHPDocs ef2f446

v0.15.0-beta

27 April 2022

  • Update Filecache #170
  • Merge HydeFront v1.3.1 727c8f3
  • Remove asset publishing commands 0f49d16
  • Rework internals, loading styles from CDN c5283c0

v0.14.0-beta

21 April 2022

v0.13.0-beta

20 April 2022

  • Update Filecache #141
  • Add table of contents to the documentation page sidebar #140
  • Add the table of contents to the frontend f728810
  • Add the table of contents generation 2c4c1b9
  • Allow table of contents to be disabled in config fc9cba1

v0.12.0-beta

19 April 2022

  • Update Filecache #135
  • Update Filecache #134
  • Allow author array data to be added in front matter #133
  • Strip front matter from documentation pages #130
  • Add trait to handle Authors in the data layer 62f3793
  • Update the views to move logic to data layer 2ebc62c
  • Parse the documentation pages using the fileservice 041bf98

v0.11.0-beta

17 April 2022

  • Add command for the new realtime compiler 9be80eb
  • Allow the host and port to be specified e54a394

v0.10.0-beta

12 April 2022

  • Update Filecache #124
  • Update Filecache #122
  • Update Filecache #120
  • Update Filecache #118
  • Update Filecache #117
  • Add darkmode support and refactor blade components #116
  • Add skip to content link #113
  • Update the welcome page to be more accessible #112
  • Remove the deprecated and unused service provider #108
  • Update Blade components, internal data handling, add a11y features #102
  • Refactor tests #98
  • Deprecate internal abstract class HydeBasePublishingCommand #97
  • Update and simplify the command and rename signature from publish:configs to update:configs, making overwriting files the default. #95
  • Change blade source directory to _pages #90
  • Fix line ending sequence issue in checksums #86
  • Refactor internal file handling logic to be more intelligent to provide a safer, more intuitive, user experience #84
  • Fix improper article ID usage - remember to re-publish styles #81
  • Fix #63, update component to show formatted dates #80
  • Update Spatie YAML Front Matter Package to fix #36 #79
  • Add base styles to documentation layout #77
  • Refactor code to extend base classes and remove shared code #74
  • Refactor the backend structure of the static page builder command process #72
  • Supply _media as the path argument in the hyde:rebuild command to copy all media files. #71
  • Add more relevant targets for the skip to content link, fix #123 #123
  • Add the image model, fix #100 #100
  • Merge pull request #80 from hydephp/63-fix-up-the-post-date-component-to-show-the-readable-name #63
  • Fix #63, update component to show formatted dates #63
  • Merge pull request #79 from hydephp/36-spatie-yaml-front-matter-package-not-properly-handling-markdown-documents-with-markdown-inside #36
  • Compress CSS, 5.48 KB to 3.37 KB (38.56%) d7f2054
  • Update dependencies f851978
  • Remove the deprecated and now unused base command 0f137c8

v0.9.0-beta

7 April 2022

  • Rework how frontend assets (stylesheets and main script) are handled #69
  • Move the resource files 7c70467
  • Add the update frontend resources command 551df0a
  • Add the action to publish the frontend resources e2c82fb

v0.8.1-beta

3 April 2022

  • Add --no-api option to disable Torchlight at runtime, fix #53 #53
  • Add Changelog.md fe2fdf8
  • Create CODE_OF_CONDUCT.md 9361d1d
  • Create CONTRIBUTING.md a581146

v0.8.0-beta

2 April 2022

  • Rewrite main navigation menu #60
  • Fix #59, unify sidebar elements #59
  • Unify the navigation menu f0e6cfc
  • Add the interaction c5b4f7e

v0.7.5-alpha

2 April 2022

  • Fix broken meta url in schema prop b54cfe4
  • Fix broken meta url in schema prop 80b5523

v0.7.4-alpha

1 April 2022

v0.7.3-alpha

1 April 2022

v0.7.2-alpha

1 April 2022

  • Create new command to scaffold pages #55
  • Create the action b788de2
  • Create the command eac5258
  • Clean up and format code dc5c5ee

v0.7.1-alpha

1 April 2022

  • Add a favicon link automatically if the file exists #54
  • Create LICENSE.md 57d4a1b
  • Use getPrettyVersion for composer version 7569fb7
  • Change version to the (pretty) framework version 973cc74

v0.7.0-alpha

1 April 2022

  • Fix bug #47 StaticPageBuilder not able to create nested documentation directories #51
  • Remove _authors and _drafts directories #48 #49
  • Delete phpdoc.dist.xml b28afb7
  • Remove _data directory a11ff92
  • Update author yml config path e0578bb

v0.6.2-alpha

30 March 2022

  • Fix the documentation page header link #46
  • Use the indexpath basename for the doc header e188eb5

v0.6.1-alpha

30 March 2022

  • Use relative path helper for links #45
  • Add support for nesting the documentation pages #42

v0.6.0-alpha

30 March 2022

  • Fix the 404 route bug #41
  • #38 Add a rebuild command to the Hyde CLI to rebuild a specific file #39
  • Move scripts into app.js #35
  • #32 refactor command class names to be consistent #33
  • Add internal PHPDoc class descriptions #30
  • Require Torchlight #27
  • Restructure backend models #26
  • Rework how Markdown files are handled to improve maintainability and testing #25
  • 0.6.0 Remove support for Front Matter in Markdown Pages #24
  • Fix #21 by dynamically routing to the docs index #23
  • Merge pull request #23 from hydephp/21-bug-documentation-sidebar-header-should-link-to-readme-if-that-exists-but-an-index-does-not #21
  • Fix #21 by dynamically routing to the docs index #21
  • Add PHPUnit 0d59ea0
  • Create the HydeRebuildStaticSiteCommand 92b1d20
  • Refactor to use the MarkdownFileService 48a27a2

v0.5.3-alpha

26 March 2022

  • Remove deprecated methods #19
  • Make the command extend the base command eaba9da
  • Remove deprecated class 24753c1
  • Format to PSR2 8307b65

v0.5.2-alpha

25 March 2022

  • Remove the Hyde installer #18
  • 0.6.x Remove deprecated command #17
  • Improve Docgen Feature by allowing the output directory to be dynamically changed #16
  • Rework installer prompts and fix wrong directory c15a4ac
  • Allow the documentation output directory to be changed 6cf07a3
  • Allow the homepage argument to be set from cli ab8dedd

v0.5.1-alpha

24 March 2022

  • Fix visual bug caused by setting max-width on body instead of article #15
  • Load commands in service provider instead of config/commands.php #13
  • Load commands in service provider instead of config 46397fd

v0.5.0-alpha

24 March 2022

  • Merge 0.5.0 into Master - Adds a multitude of new tests, code refactors and quality of life features #12
  • Sync branch with Master #11
  • Merge 0.5.x progress #10
  • Add _data directory and Authors object as well as stubs to aid in testing #9
  • Add required depedency to framework e5f0ec5
  • Implement the Authors backend feature d7679f5
  • Add Commonmark as an explicit dependency bf915b1

v0.4.3-alpha

23 March 2022

  • Add bindings for the package versions a9ce58d
  • Get version from facade 465bafc
  • Replace Git version with Hyde version bcb7357

v0.4.2-alpha

23 March 2022

  • v0.4.2-alpha Adds new meta tags and more data rich HTML #8
  • Add new meta tag options 78a74c7
  • Add the Site URL feature, remember to update config! ee2f5c6
  • Add more rich HTML content 8eb6778

v0.4.1-alpha

22 March 2022

  • Add the Hyde::getLatestPosts() shorthand to get the latest posts collection #4
  • Add new options to the build command to improve the user experience #3
  • Remove progress bar from empty collections 40d3203
  • Add option to remove old files before building 2650997
  • Add options to automatically build frontend assets f789c2f

v0.4.0-alpha

22 March 2022

v0.3.1-alpha

22 March 2022

  • Delete vendor directory 4f96627
  • 0.3.1 Move commands to framework 70dd8df
  • Add php 8 require, and suggest hyde/hyde a8ff6ad

v0.3.0-alpha

21 March 2022

  • Add the Core files (with temporary namespace) 816ad3a
  • Initial Commit fa00787
  • Successfully move namespace Core to Framework 0c9160f

Syntax highlighting by Torchlight.dev