# v1.0.0-rc.4 ## 10/29/2015 1. [](#bugfix) * Fixed a fatal error if you have a collection with missing or invalid `@page: /route` # v1.0.0-rc.3 ## 10/29/2015 1. [](#new) * New Page collection options! `@self.parent, @self.siblings, @self.descendants` + more * Whitelist of file types for fallback route functionality (images by default) 1. [](#improved) * Assets switched from defines to streams 1. [](#bugfix) * README.md typos fixed * Fixed issue with routes that have lang string in them (`/en/english`) * Trim strings before validation so whitespace is not satisfy 'required' # v1.0.0-rc.2 ## 10/27/2015 1. [](#new) * Added support for CSS Asset groups * Added a `wrapped_site` system option for themes/plugins to use * Pass `Page` object as event to `onTwigPageVariables()` event hook * New `Data.items()` method to get all items 1. [](#improved) * Missing pipelined remote asset will now fail quietly * More reliably handle inline JS and CSS to remove only surrounding HTML tags * `Medium.meta` returns new Data object so null checks are possible * Improved Medium metadata merging to allow for automatic title/alt/class attributes * Moved Grav object to global variable rather than template variable (useful for macros) * German language improvements * Updated bundled composer 1. [](#bugfix) * Accept variety of `true` values in `User.authorize()` method * Fix for `Validation` throwing an error if no label set # v1.0.0-rc.1 ## 10/23/2015 1. [](#new) * Use native PECL YAML parser if installed for 4X speed boost in parsing YAML files * Support for inherited theme class * Added new default language prepend system configuration option * New `|evaluate` Twig filter to evaluate a string as twig * New system option to ignore all **hidden** files and folders * New system option for default redirect code * Added ability to append specific `[30x]` codes to redirect URLs * Added `url_taxonomy_filters` for page collections * Added `@root` page and `recurse` flag for page collections * Support for **multiple** page collection types as an array * Added Dutch language file * Added Russian language file * Added `remove` method to User object 1. [](#improved) * Moved hardcoded mimetypes to `media.yaml` to be treated as Page media files * Set `errors: display: false` by default in `system.yaml` * Strip out extra slashes in the URI * Validate hostname to ensure it is valid * Ignore more SCM folders in Backups * Removed `home_redirect` settings from `system.yaml` * Added Page `media` as root twig object for consistency * Updated to latest vendor libraries * Optimizations to Asset pipeline logic for minor speed increase * Block direct access to a variety of files in `.htaccess` for increased security * Debugbar vendor library update * Always fallback to english if other translations are not available 1. [](#bugfix) * Fix for redirecting external URL with multi-language * Fix for Asset pipeline not respecting asset groups * Fix language files with child/parent theme relationships * Fixed a regression issue resulting in incorrect default language * Ensure error handler is initialized before URI is processed * Use default language in Twig if active language is not set * Fixed issue with `safeEmailFilter()` Twig filter not separating with `;` properly * Fixed empty YAML file causing error with native PECL YAML parser * Fixed `SVG` mimetype * Fixed incorrect `Cache-control: max-age` value format # v0.9.45 ## 10/08/2015 1. [](#bugfix) * Fixed a regression issue resulting in incorrect default language # v0.9.44 ## 10/07/2015 1. [](#new) * Added Redis back as a supported cache mechanism * Allow Twig `nicetime` translations * Added `-y` option for 'Yes to all' in `bin/gpm update` * Added CSS `media` attribute to the Assets manager * New German language support * New Czech language support * New French language support * Added `modulus` twig filter 1. [](#improved) * URL decode in medium actions to allow complex syntax * Take into account `HTTP_HOST` before `SERVER_NAME` (helpful with Nginx) * More friendly cache naming to ease manual management of cache systems * Added default Apache resource for `DirectoryIndex` 1. [](#bugfix) * Fix GPM failure when offline * Fix `open_basedir` error in `bin/gpm install` * Fix an HHVM error in Truncator * Fix for XSS vulnerability with params * Fix chaining for responsive size derivatives * Fix for saving pages when removing the page title and all other header elements * Fix when saving array fields * Fix for ports being included in `HTTP_HOST` * Fix for Truncator to handle PHP tags gracefully * Fix for locate style lang codes in `getNativeName()` * Urldecode image basenames in markdown # v0.9.43 ## 09/16/2015 1. [](#new) * Added new `AudioMedium` for HTML5 audio * Added ability for Assets to be added and displayed in separate *groups* * New support for responsive image derivative sizes 1. [](#improved) * GPM theme install now uses a `copy` method so new files are not lost (e.g. `/css/custom.css`) * Code analysis improvements and cleanup * Removed Twig panel from debugger (no longer supported in Twig 1.20) * Updated composer packages * Prepend active language to `convertUrl()` when used in markdown links * Added some pre/post flight options for installer via blueprints * Hyphenize the site name in the backup filename 1. [](#bugfix) * Fix broken routable logic * Check for `phpinfo()` method in case it is restricted by hosting provider * Fixes for windows when running GPM * Fix for ampersand (`&`) causing error in `truncateHtml()` via `Page.summary()` # v0.9.42 ## 09/11/2015 1. [](#bugfix) * Fixed `User.authorise()` to be backwards compabile # v0.9.41 ## 09/11/2015 1. [](#new) * New and improved multibyte-safe TruncateHTML function and filter * Added support for custom page date format * Added a `string` Twig filter to render as json_encoded string * Added `authorize` Twig filter * Added support for theme inheritance in the admin * Support for multiple content collections on a page * Added configurable files/folders ignores for pages * Added the ability to set the default PHP locale and override via multi-lang configuration * Added ability to save as YAML via admin * Added check for `mbstring` support * Added new `redirect` header for pages 1. [](#improved) * Changed dependencies from `develop` to `master` * Updated logging to log everything from `debug` level on (was `warning`) * Added missing `accounts/` folder * Default to performing a 301 redirect for URIs with trailing slashes * Improved Twig error messages * Allow validating of forms from anywhere such as plugins * Added logic so modular pages are by default non-routable * Hide password input in `bin/grav newuser` command 1. [](#bugfix) * Fixed `Pages.all()` not returning modular pages * Fix for modular template types not getting found * Fix for `markdown_extra:` overriding `markdown:extra:` setting * Fix for multi-site routing * Fix for multi-lang page name error * Fixed a redirect loop in `URI` class * Fixed a potential error when `unsupported_inline_types` is empty * Correctly generate 2x retina image * Typo fixes in page publish/unpublish blueprint # v0.9.40 ## 08/31/2015 1. [](#new) * Added some new Twig filters: `defined`, `rtrim`, `ltrim` * Admin support for customizable page file name + template override 1. [](#improved) * Better message for incompatible/unsupported Twig template * Improved User blueprints with better help * Switched to composer **install** rather than **update** by default * Admin autofocus on page title * `.htaccess` hardening (`.htaccess` & `htaccess.txt`) * Cache safety checks for missing folders 1. [](#bugfix) * Fixed issue with unescaped `o` character in date formats # v0.9.39 ## 08/25/2015 1. [](#bugfix) * `Page.active()` not triggering on **homepage** * Fix for invalid session name in Opera browser # v0.9.38 ## 08/24/2015 1. [](#new) * Added `language` to **user** blueprint * Added translations to blueprints * New extending logic for blueprints * Blueprints are now loaded with Streams to allow for better overrides * Added new Symfony `dump()` method 1. [](#improved) * Catch YAML header parse exception so site doesn't die * Better `Page.parent()` logic * Improved GPM display layout * Tweaked default page layout * Unset route and slug for improved reliability of route changes * Added requirements to README.md * Updated various libraries * Allow use of custom page date field for dateRange collections 1. [](#bugfix) * Slug fixes with GPM * Unset plaintext password on save * Fix for trailing `/` not matching active children # v0.9.37 ## 08/12/2015 3. [](#bugfix) * Fixed issue when saving `header.process` in page forms via the **admin plugin** * Fixed error due to use of `set_time_limit` that might be disabled on some hosts # v0.9.36 ## 08/11/2015 1. [](#new) * Added a new `newuser` CLI command to create user accounts * Added `default` blueprint for all templates * Support `user` and `system` language translation merging 1. [](#improved) * Added isSymlink method in GPM to determine if Grav is symbolically linked or not * Refactored page recursing * Updated blueprints to use new toggles * Updated blueprints to use current date for date format fields * Updated composer.phar * Use sessions for admin even when disabled for site * Use `GRAV_ROOT` in session identifier # v0.9.35 ## 08/06/2015 1. [](#new) * Added `body_classes` field * Added `visiblity` toggle and help tooltips on new page form * Added new `Page.unsetRoute()` method to allow admin to regenerate the route 2. [](#improved) * User save no longer stores username each time * Page list form field now shows all pages except root * Removed required option from page title * Added configuration settings for running Nginx in sub directory 3. [](#bugfix) * Fixed deep translation merging * Fixed broken **metadata** merging with site defaults * Fixed broken **summary** field * Fixed broken robots field * Fixed GPM issue when using cURL, throwing an `Undefined offset: 1` exception * Removed duplicate hidden page `type` field # v0.9.34 ## 08/04/2015 1. [](#new) * Added new `cache_all` system setting + media `cache()` method * Added base languages configuration * Added property language to page to help plugins identify page language * New `Utils::arrayFilterRecursive()` method 2. [](#improved) * Improved Session handling to support site and admin independently * Allow Twig variables to be modified in other events * Blueprint updates in preparation for Admin plugin * Changed `Inflector` from static to object and added multi-language support * Support for admin override of a page's blueprints 3. [](#bugfix) * Removed unused `use` in `VideoMedium` that was causing error * Array fix in `User.authorise()` method * Fix for typo in `translations_fallback` * Fixed moving page to the root # v0.9.33 ## 07/21/2015 1. [](#new) * Added new `onImageMediumSaved()` event (useful for post-image processing) * Added `Vary: Accept-Encoding` option 2. [](#improved) * Multilang-safe delimeter position * Refactored Twig classes and added optional umask setting * Removed `pageinit()` timing * `Page->routable()` now takes `published()` state into account * Improved how page extension is set * Support `Language->translate()` method taking string and array 3. [](#bugfix) * Fixed `backup` command to include empty folders # v0.9.32 ## 07/14/2015 1. [](#new) * Detect users preferred language via `http_accept_language` setting * Added new `translateArray()` language method 2. [](#improved) * Support `en` translations by default for plugins & themes * Improved default generator tag * Minor language tweaks and fixes 3. [](#bugfix) * Fix for session active language and homepage redirects * Ignore root-level page rather than throwing error # v0.9.31 ## 07/09/2015 1. [](#new) * Added xml, json, css and js to valid media file types 2. [](#improved) * Better handling of unsupported media type downloads * Improved `bin/grav backup` command to mimic admin plugin location/name 3. [](#bugfix) * Critical fix for broken language translations * Fix for Twig markdown filter error * Safety check for download extension # v0.9.30 ## 07/08/2015 1. [](#new) * BIG NEWS! Extensive Multi-Language support is all new in 0.9.30! * Translation support via Twig filter/function and PHP method * Page specific default route * Page specific route aliases * Canonical URL route support * Added built-in session support * New `Page.rawRoute()` to get a consistent folder-based route to a page * Added option to always redirect to default page on alias URL * Added language safe redirect function for use in core and plugins 2. [](#improved) * Improved `Page.active()` and `Page.activeChild()` methods to support route aliases * Various spelling corrections in `.php` comments, `.md` and `.yaml` files * `Utils::startsWith()` and `Utils::endsWith()` now support needle arrays * Added a new timer around `pageInitialized` event * Updated jQuery library to v2.1.4 3. [](#bugfix) * In-page CSS and JS files are now handled properly * Fix for `enable_media_timestamp` not working properly # v0.9.29 ## 06/22/2015 1. [](#new) * New and improved Regex-powered redirect and route alias logic * Added new `onBuildPagesInitialized` event for memory critical or time-consuming plugins * Added a `setSummary()` method for pages 2. [](#improved) * Improved `MergeConfig()` logic for more control * Travis skeleton build trigger implemented * Set composer.json versions to stable versions where possible * Disabled `last_modified` and `etag` page headers by default (causing too much page caching) 3. [](#bugfix) * Preload classes during `bin/gpm selfupgrade` to avoid issues with updated classes * Fix for directory relative _down_ links # v0.9.28 ## 06/16/2015 1. [](#new) * Added method to set raw markdown on a page * Added ability to enabled system and page level `etag` and `last_modified` headers 2. [](#improved) * Improved image path processing * Improved query string handling * Optimization to image handling supporting URL encoded filenames * Use global `composer` when available rather than Grv provided one * Use `PHP_BINARY` contant rather than `php` executable * Updated Doctrine Cache library * Updated Symfony libraries * Moved `convertUrl()` method to Uri object 3. [](#bugfix) * Fix incorrect slug causing problems with CLI `uninstall` * Fix Twig runtime error with assets pipeline in sufolder installations * Fix for `+` in image filenames * Fix for dot files causing issues with page processing * Fix for Uri path detection on Windows platform * Fix for alternative media resolutions * Fix for modularTypes key properties # v0.9.27 ## 05/09/2015 1. [](#new) * Added new composer CLI command * Added page-level summary header overrides * Added `size` back for Media objects * Refactored Backup command in preparation for admin plugin * Added a new `parseLinks` method to Plugins class * Added `starts_with` and `ends_with` Twig filters 2. [](#improved) * Optimized install of vendor libraries for speed improvement * Improved configuration handling in preparation for admin plugin * Cache optimization: Don't cache Twig templates when you pass dynamic params * Moved `Utils::rcopy` to `Folder::rcopy` * Improved `Folder::doDelete` * Added check for required Curl in GPM * Updated included composer.phar to latest version * Various blueprint fixes for admin plugin * Various PSR and code cleanup tasks 3. [](#bugfix) * Fix issue with Gzip not working with `onShutDown()` event * Fix for URLs with trailing slashes * Handle condition where certain errors resulted in blank page * Fix for issue with theme name equal to base_url and asset pipeline * Fix to properly normalize font rewrite path * Fix for absolute URLs below the current page * Fix for `..` page references # v0.9.26 ## 04/24/2015 3. [](#bugfix) * Fixed issue with homepage routes failing with 'dirname' error # v0.9.25 ## 04/24/2015 1. [](#new) * Added support for E-Tag, Last-Modified, Cache-Control and Page-based expires headers 2. [](#improved) * Refactored media image handling to make it more flexible and support absolute paths * Refactored page modification check process to make it faster * User account improvements in preparation for admin plugin * Protect against timing attacks * Reset default system expires time to 0 seconds (can override if you need to) 3. [](#bugfix) * Fix issues with spaces in webroot when using `bin/grav install` * Fix for spaces in relative directory * Bug fix in collection filtering # v0.9.24 ## 04/15/2015 1. [](#new) * Added support for chunked downloads of Assets * Added new `onBeforeDownload()` event * Added new `download()` and `getMimeType()` methods to Utils class * Added configuration option for supported page types * Added assets and media timestamp options (off by default) * Added page expires configuration option 2. [](#bugfix) * Fixed issue with Nginx/Gzip and `ob_flush()` throwing error * Fixed assets actions on 'direct media' URLs * Fix for 'direct assets` with any parameters # v0.9.23 ## 04/09/2015 1. [](#bugfix) * Fix for broken GPM `selfupgrade` (Grav 0.9.21 and 0.9.22 will need to manually upgrade to this version) # v0.9.22 ## 04/08/2015 1. [](#bugfix) * Fix to normalize GRAV_ROOT path for Windows * Fix to normalize Media image paths for Windows * Fix for GPM `selfupgrade` when you are on latest version # v0.9.21 ## 04/07/2015 1. [](#new) * Major Media functionality enhancements: SVG, Animated GIF, Video support! * Added ability to configure default image quality in system configuration * Added `sizes` attributes for custom retina image breakpoints 2. [](#improved) * Don't scale @1x retina images * Add filter to Iterator class * Updated various composer packages * Various PSR fixes # v0.9.20 ## 03/24/2015 1. [](#new) * Added `addAsyncJs()` and `addDeferJs()` to Assets manager * Added support for extranal URL redirects 2. [](#improved) * Fix unpredictable asset ordering when set from plugin/system * Updated `nginx.conf` to ensure system assets are accessible * Ensure images are served as static files in Nginx * Updated vendor libraries to latest versions * Updated included composer.phar to latest version 3. [](#bugfix) * Fixed issue with markdown links to `#` breaking HTML # v0.9.19 ## 02/28/2015 1. [](#new) * Added named assets capability and bundled jQuery into Grav core * Added `first()` and `last()` to `Iterator` class 2. [](#improved) * Improved page modification routine to skip _dot files_ * Only use files to calculate page modification dates * Broke out Folder iterators into their own classes * Various Sensiolabs Insight fixes 3. [](#bugfix) * Fixed `Iterator.nth()` method # v0.9.18 ## 02/19/2015 1. [](#new) * Added ability for GPM `install` to automatically install `_demo` content if found (w/backup) * Added ability for themes and plugins to have dependencies required to install via GPM * Added ability to override the system timezone rather than relying on server setting only * Added new Twig filter `random_string` for generating random id values * Added new Twig filter `markdown` for on-the-fly markdown processing * Added new Twig filter `absoluteUrl` to convert relative to absolute URLs * Added new `processTemplate()` method to Twig object for on-the-fly processing of twig template * Added `rcopy()` and `contains()` helper methods in Utils 2. [](#improved) * Provided new `param_sep` variable to better support Apache on Windows * Moved parsedown configuration into the trait * Added optional **deep-copy** option to `mergeConfig()` for plugins * Updated bundled `composer.phar` package * Various Sensiolabs Insight fixes - Silver level now! * Various PSR Fixes 3. [](#bugfix) * Fix for windows platforms not displaying installed themes/plugins via GPM * Fix page IDs not picking up folder-only pages # v0.9.17 ## 02/05/2015 1. [](#new) * Added **full HHVM support!** Get your speed on with Facebook's crazy fast PHP JIT compiler 2. [](#improved) * More flexible page summary control * Support **CamelCase** plugin and theme class names. Replaces dashes and underscores * Moved summary delimiter into `site.yaml` so it can be configurable * Various PSR fixes 3. [](#bugfix) * Fix for `mergeConfig()` not falling back to defaults * Fix for `addInlineCss()` and `addInlineJs()` Assets not working between Twig tags * Fix for Markdown adding HTML tags into inline CSS and JS # v0.9.16 ## 01/30/2015 1. [](#new) * Added **Retina** and **Responsive** image support via Grav media and `srcset` image attribute * Added image debug option that overlays responsive resolution * Added a new image cache stream 2. [](#improved) * Improved the markdown Lightbox functionality to better mimic Twig version * Fullsize Lightbox can now have filters applied * Added a new `mergeConfig()` method to Plugin class to merge system + page header configuration * Added a new `disable()` method to Plugin class to programmatically disable a plugin * Updated Parsedown and Parsedown Extra to address bugs * Various PSR fixes 3. [](#bugfix) * Fix bug with image dispatch in traditionally _non-routable_ pages * Fix for markdown link not working on non-current pages * Fix for markdown images not being found on homepage # v0.9.15 ## 01/23/2015 3. [](#bugfix) * Typo in video mime types * Fix for old `markdown_extra` system setting not getting picked up * Fix in regex for Markdown links with numeric values in path * Fix for broken image routing mechanism that got broken at some point * Fix for markdown images/links in pages with page slug override # v0.9.14 ## 01/23/2015 1. [](#new) * Added **GZip** support * Added multiple configurations via `setup.php` * Added base structure for unit tests * New `onPageContentRaw()` plugin event that processes before any page processing * Added ability to dynamically set Metadata on page * Added ability to dynamically configure Markdown processing via Parsedown options 2. [](#improved) * Refactored `page.content()` method to be more flexible and reliable * Various updates and fixes for streams resulting in better multi-site support * Updated Twig, Parsedown, ParsedownExtra, DoctrineCache libraries * Refactored Parsedown trait * Force modular pages to be non-visible in menus * Moved RewriteBase before Exploits in `.htaccess` * Added standard video formats to Media support * Added priority for inline assets * Check for uniqueness when adding multiple inline assets * Improved support for Twig-based URLs inside Markdown links and images * Improved Twig `url()` function 3. [](#bugfix) * Fix for HTML entities quotes in Metadata values * Fix for `published` setting to have precedent of `publish_date` and `unpublish_date` * Fix for `onShutdown()` events not closing connections properly in **php-fpm** environments # v0.9.13 ## 01/09/2015 1. [](#new) * Added new published `true|false` state in page headers * Added `publish_date` in page headers to automatically publish page * Added `unpublish_date` in page headers to automatically unpublish page * Added `dateRange()` capability for collections * Added ability to dynamically control Cache lifetime programmatically * Added ability to sort by anything in the page header. E.g. `sort: header.taxonomy.year` * Added various helper methods to collections: `copy, nonVisible, modular, nonModular, published, nonPublished, nonRoutable` 2. [](#improved) * Modified all Collection methods so they can be chained together: `$collection->published()->visible()` * Set default Cache lifetime to default of 1 week (604800 seconds) - was infinite * House-cleaning of some unused methods in Pages object 3. [](#bugfix) * Fix `uninstall` GPM command that was broken in last release * Fix for intermittent `undefined index` error when working with Collections * Fix for date of some pages being set to incorrect future timestamps # v0.9.12 ## 01/06/2015 1. [](#new) * Added an all-access robots.txt file for search engines * Added new GPM `uninstall` command * Added support for **in-page** Twig processing in **modular** pages * Added configurable support for `undefined` Twig functions and filters 2. [](#improved) * Fall back to default `.html` template if error occurs on non-html pages * Added ability to have PSR-1 friendly plugin names (CamelCase, no-dashes) * Fix to `composer.json` to deter API rate-limit errors * Added **non-exception-throwing** handler for undefined methods on `Medium` objects 3. [](#bugfix) * Fix description for `self-upgrade` method of GPM command * Fix for incorrect version number when performing GPM `update` * Fix for argument description of GPM `install` command * Fix for recalcitrant CodeKit mac application # v0.9.11 ## 12/21/2014 1. [](#new) * Added support for simple redirects as well as routes 2. [](#improved) * Handle Twig errors more cleanly 3. [](#bugfix) * Fix for error caused by invalid or missing user agent string * Fix for directory relative links and URL fragments (#pagelink) * Fix for relative links with no subfolder in `base_url` # v0.9.10 ## 12/12/2014 1. [](#new) * Added Facebook-style `nicetime` date Twig filter 2. [](#improved) * Moved `clear-cache` functionality into Cache object required for Admin plugin 3. [](#bugfix) * Fix for undefined index with previous/next buttons # v0.9.9 ## 12/05/2014 1. [](#new) * Added new `@page` collection type * Added `ksort` and `contains` Twig filters * Added `gist` Twig function 2. [](#improved) * Refactored Page previous/next/adjacent functionality * Updated to Symfony 2.6 for yaml/console/event-dispatcher libraries * More PSR code fixes 3. [](#bugfix) * Fix for over-escaped apostrophes in YAML # v0.9.8 ## 12/01/2014 1. [](#new) * Added configuration option to set default lifetime on cache saves * Added ability to set HTTP status code from page header * Implemented simple wild-card custom routing 2. [](#improved) * Fixed elusive double load to fully cache issue (crossing fingers...) * Ensure Twig tags are treated as block items in markdown * Removed some older deprecated methods * Ensure onPageContentProcessed() event only fires when not cached * More PSR code fixes 3. [](#bugfix) * Fix issue with miscalculation of blog separator location `===` # v0.9.7 ## 11/24/2014 1. [](#improved) * Nginx configuration updated * Added gitter.im badge to README * Removed `set_time_limit()` and put checks around `ignore_user_abort` * More PSR code fixes 2. [](#bugfix) * Fix issue with non-valid asset path showing up when they shouldn't * Fix for JS asset pipeline and scripts that don't end in `;` * Fix for schema-based markdown URLs broken routes (eg `mailto:`) # v0.9.6 ## 11/17/2014 1. [](#improved) * Moved base_url variables into Grav container * Forced media sorting to use natural sort order by default * Various PSR code tidying * Added filename, extension, thumb to all medium objects 2. [](#bugfix) * Fix for infinite loop in page.content() * Fix hostname for configuration overrides * Fix for cached configuration * Fix for relative URLs in markdown on installs with no base_url * Fix for page media images with uppercase extension # v0.9.5 ## 11/09/2014 1. [](#new) * Added quality setting to medium for compression configuration of images * Added new onPageContentProcessed() event that is post-content processing but pre-caching 2. [](#improved) * Added support for AND and OR taxonomy filtering. AND by default (was OR) * Added specific clearing options for CLI clear-cache command * Moved environment method to URI so it can be accessible in plugins and themes * Set Grav's output variable to public so it can be manipulated in onOutputGenerated event * Updated vendor libraries to latest versions * Better handing of 'home' in active menu state detection * Various PSR code tidying * Improved some error messages and notices 3. [](#bugfix) * Force route rebuild when configuration changes * Fix for 'installed undefined' error in CLI versions command * Do not remove the JSON/Text error handlers * Fix for supporting inline JS and CSS when Asset pipeline enabled * Fix for Data URLs in CSS being badly formed * Fix Markdown links with fragment and query elements # v0.9.4 ## 10/29/2014 1. [](#new) * New improved Debugbar with messages, timing, config, twig information * New exception handling system utilizing Whoops * New logging system utilizing Monolog * Support for auto-detecting environment configuration * New version command for CLI * Integrate Twig dump() calls into Debugbar 2. [](#improved) * Selfupgrade now clears cache on successful upgrade * Selfupgrade now supports files without extensions * Improved error messages when plugin is missing * Improved security in .htaccess * Support CSS/JS/Image assets in vendor/system folders via .htaccess * Add support for system timers * Improved and optimized configuration loading * Automatically disable Debugbar on non-HTML pages * Disable Debugbar by default 3. [](#bugfix) * More YAML blueprint fixes * Fix potential double // in assets * Load debugger as early as possible # v0.9.3 ## 10/09/2014 1. [](#new) * GPM (Grav Package Manager) Added * Support for multiple Grav configurations * Dynamic media support via URL * Added inlineCss and inlineJs support for Assets 2. [](#improved) * YAML caching for increased performance * Use stream wrapper in pages, plugins and themes * Switched to RocketTheme toolbox for some core functionality * Renamed `setup` CLI command to `sandbox` * Broke cache types out into multiple directories in the cache folder * Removed vendor libs from github repository * Various PSR cleanup of code * Various Blueprint updates to support upcoming admin plugin * Added ability to filter page children for normal/modular/all * Added `sort_by_key` twig filter * Added `visible()` and `routable()` filters to page collections * Use session class in shutdown process * Improvements to modular page loading * Various code cleanup and optimizations 3. [](#bugfix) * Fixed file checking not updating the last modified time. For real this time! * Switched debugger to PRODUCTION mode by default * Various fixes in URI class for increased reliability # v0.9.2 ## 09/15/2014 1. [](#new) * New flexible site and page metadata support including ObjectGraph and Facebook * New method to get user IP address in URI object * Added new onShutdown() event that fires after connection is closed for Async features 2. [](#improved) * Skip assets pipeline minify on Windows platforms by default due to PHP issue 47689 * Fixed multiple level menus not highlighting correctly * Updated some blueprints in preparation for admin plugin * Fail gracefully when theme does not exist * Add stream support into ResourceLocator::addPath() * Separate themes from plugins, add themes:// stream and onTask events * Added barDump() to Debugger * Removed stray test page * Override modified only if a non-markdown file was modified * Added assets attributes support * Auto-run composer install when running the Grav CLI * Vendor folder removed from repository * Minor configuration performance optimizations * Minor debugger performance optimizations 3. [](#bugfix) * Fix url() twig function when Grav isn't installed at root * Workaround for PHP bug 52065 * Fixed getList() method on Pages object that was not working * Fix for open_basedir error * index.php now warns if not running on PHP 5.4 * Removed memcached option (redundant) * Removed memcache from auto setup, added memcache server configuration option * Fix broken password validation * Back to proper PSR-4 Autoloader # v0.9.1 ## 09/02/2014 1. [](#new) * Added new `theme://` PHP stream for current theme 2. [](#improved) * Default to new `file` modification checking rather than `folder` * Added support for various markdown link formats to convert to Grav-friendly URLs * Moved configure() from Theme to Themes class * Fix autoloading without composer update -o * Added support for Twig url method * Minor code cleanup 3. [](#bugfix) * Fixed issue with page changes not being picked up * Fixed Minify to provide `@supports` tag compatibility * Fixed ResourceLocator not working with multiple paths * Fixed issue with Markdown process not stripping LFs * Restrict file type extensions for added security * Fixed template inheritance * Moved Browser class to proper location # v0.9.0 ## 08/25/2014 1. [](#new) * Addition of Dependency Injection Container * Refactored plugins to use Symfony Event Dispatcher * New Asset Manager to provide unified management of JavaScript and CSS * Asset Pipelining to provide unification, minify, and optimization of JavaScript and CSS * Grav Media support directly in Markdown syntax * Additional Grav Generator meta tag in default themes * Added support for PHP Stream Wrapper for resource location * Markdown Extra support * Browser object for fast browser detection 2. [](#improved) * PSR-4 Autoloader mechanism * Tracy Debugger new `detect` option to detect running environment * Added new `random` collection sort option * Make media images progressive by default * Additional URI filtering for improved security * Safety checks to ensure PHP 5.4.0+ * Move to Slidebars side navigation in default Antimatter theme * Updates to `.htaccess` including section on `RewriteBase` which is needed for some hosting providers 3. [](#bugfix) * Fixed issue when installing in an apache userdir (~username) folder * Various mobile CSS issues in default themes * Various minor bug fixes # v0.8.0 ## 08/13/2014 1. [](#new) * Initial Release