mirror of
https://github.com/getgrav/grav.git
synced 2025-10-26 07:56:07 +01:00
90 KiB
90 KiB
v1.3.4
xx/xx/2017
-
- Implemented
Composer\CaBundlefor SSL Certs #1241 - Refactored the Assets sorting logic
- Implemented
-
- Fixed
Page::summary()when using delimiter and multibyte UTF8 Characters #1644
- Fixed
v1.3.3
09/07/2017
-
- User
authorizationnow requires a check forauthenticated- REQUIRED:Login v2.4.0 - Added options to
Page::summary()to support size without HTML tags #1554 - Forced
natsorton plugins to ensure consistent plugin load ordering across platforms #1614 - Use new
multilevelfield to handle Asset Collections #1201 - Added support for redis
passwordoption #1620 - Use 302 rather than 301 redirects by default #1619
- GPM Installer will try to load alphanumeric version of the class if no standard class found #1630
- Add current page position to
Userclass #1632 - Added option to enable case insensitive URLs #1638
- Updated vendor libraries
- Updated
travis.ymlto add support for PHP 7.1 as well as 7.0.21 for test suite
- User
-
- Fixed UTF8 multibyte UTF8 character support in
Page::summary()#1554
- Fixed UTF8 multibyte UTF8 character support in
v1.3.2
08/16/2017
-
- Added a new
cache_controlsystem and page level property #1591 - Added a new
clear_images_by_defaultsystem property to stop cache clear events from removing processed images #1481 - Added new
onTwigLoader()event to enable utilization of loader methods - Added new
Twig::addPath()andTwig::prependPath()methods to wrap loader methods and support namespacing #1604 - Added new
array_key_exists()Twig function wrapper - Added a new
Collection::intersect()method #1605
- Added a new
-
- Allow
session.timetoutfield to be set to0via blueprints #1598 - Fixed
Data::exists()andData::raw()functions breaking ifData::file()hasn't been called with non-null value - Fixed parent theme auto-loading in child themes of Gantry 5
- Allow
v1.3.1
07/19/2017
-
- Fix ordering for Linux + International environments #1574
- Check if medium thumbnail exists before resetting
- Update Travis' auth token
v1.3.0
07/16/2017
-
- Fixed an undefined variable
$difference#1563 - Fix broken range slider grav-plugin-admin#1153
- Fix natural sort when > 100 pages #1564
- Fixed an undefined variable
v1.3.0-rc.5
07/05/2017
-
- Setting
system.session.timeoutto 0 clears the session when the browser session ends #1538 - Created a
CODE_OF_CONDUCT.mdso everyone knows how to behave :)
- Setting
-
- Renamed new
media()Twig function tomedia_directory()to avoid conflict with Page'smediaobject
- Renamed new
-
- Fixed global media files disappearing after a reload #1545
- Fix for broken regex redirects/routes via
site.yaml - Sanitize the error message in the error handler page
v1.3.0-rc.4
06/22/2017
-
- Added
lowerandupperTwig filters - Added
pathinfo()Twig function - Added 165 new thumbnail images for use in
media.yaml
- Added
-
- Improved error message when running
bin/grav installinstead ofbin/gpm install, and also when running on a non-skeleton site #1027 - Updated vendor libraries
- Improved error message when running
-
- Don't rebuild metadata every time, only when file does not exist
- Restore GravTrait in ConsoleTrait grav-plugin-login#119
- Fix Windows routing with built-in server #1502
- Fix #1504
process_twigandfrontmatter.yaml - Nicetime fix: 0 seconds from now -> just now #1509
v1.3.0-rc.3
05/22/2017
-
- Added new unified
Utils::getPagePathFromToken()method which is used by various plugins (Admin, Forms, Downloads, etc.)
- Added new unified
-
- Optionally remove unpublished pages from the translated languages, move into untranslated list #1482
- Improved reliability of
hashfile-check method
v1.3.0-rc.2
05/17/2017
-
- Added new
mediaandvardumpTwig functions
- Added new
-
- Put in various checks to ensure Exif is available before trying to use it
- Add timestamp to configuration settings #1445
-
- Fix an issue saving YAML textarea fields in expert mode #1480
- Moved
onOutputRendered()back into Grav core
v1.3.0-rc.1
05/16/2017
-
- Added support for a single array field in the forms
- Added EXIF support with automatic generation of Page Media metafiles
- Added Twig function to get EXIF data on any image file
- Added
Pages::baseUrl(),Pages::homeUrl()andPages::url()functions - Added
base32_encode,base32_decode,base64_encode,base64_decodeTwig filters - Added
Debugger::getCaller()to figure out where the method was called from - Added support for custom output providers like Slim Framework
- Added
Grav\Framework\Collectionclasses for creating collections
-
- Add more controls over HTML5 video attributes (autoplay, poster, loop controls) #1442
- Removed logging statement for invalid slug #1459
- Groups selection pre-filled in user form
- Improve error handling in
Folder::move() - Added extra parameter for
Twig::processSite()to include custom context - Updated RocketTheme Toolbox vendor library
v1.2.4
04/24/2017
-
- Added optional ignores for
Installer::sophisticatedInstall()#1447
- Added optional ignores for
v1.2.3
04/19/2017
-
- Added new
pwd_regexandusername_regexsystem configuration options to allow format modifications - Allow
user/accounts.yamloverrides and implemented more robust theme initialization - improved
getList()method to do more powerful things - Fix Typo in GPM #1427
- Added new
v1.2.2
04/11/2017
v1.2.1
04/10/2017
-
- Added various
ancestorhelper methods in Page and Pages classes #1362 - Added new
parentsfield and switched Page blueprints to use this - Added
isajaxrequest()Twig function #1400 - Added ability to inline CSS and JS code via Asset manager #1377
- Add query string in lighttpd default config #1393
- Add
--all-yesand--destinationoptions forbin/gpm direct-install#1397
- Added various
v1.2.0
03/31/2017
-
- Added file upload for user avatar in user/admin blueprint
-
- Analysis fixes
- Switched to stable composer lib versions
v1.2.0-rc.3
03/22/2017
-
- Refactored Page re-ordering to handle all siblings at once
- Added
language_codesto Twig init to allow for easy language name/code/native-name lookup
-
- Added an Admin Overrides section with option to choose the order of children in Pages Management
-
- Fixed loading issues with improperly named themes (use old broken method first) #1373
- Simplified modular/twig processing logic and fixed an issue with system process config #1351
- Cleanup package files via GPM install to make them more windows-friendly #1361
- Fix for page-level debugger override changing the option site-wide
- Allow
url()twig function to pass-through external links
v1.2.0-rc.2
03/17/2017
-
- Updated vendor libraries to latest
- Added the ability to disable debugger on a per-page basis with
debugger: falsein page frontmatter
v1.2.0-rc.1
03/13/2017
-
- Added default setting to only allow
direct-installsfrom official GPM. Can be configured insystem.yaml - Added a new
Utils::isValidUrl()method - Added optional parameter to
|markdown(false)filter to toggle block/line processing (default|true =block) - Added new
Page::folderExists()method
- Added default setting to only allow
-
Twig::evaluate()now takes current environment and context into account- Genericized
direct-installso it can be called via Admin plugin
-
- Fixed a minor bug in Number validation #1329
- Fixed exception when trying to find user account and there is no
user://accountsfolder - Fixed issue when setting
Page::expires(0)Admin #1009 - Removed ID from
nonce_field()Twig function causing validation errors Form #115
v1.1.17
02/17/2017
-
- Fix for double extensions getting added during some redirects #1307
- Fix syntax error in PHP 5.3. Move the version check before requiring the autoloaded deps
- Fix Whoops displaying error page if there is PHP core warning or error Admin #980
v1.1.16
02/10/2017
-
- Exposed the Pages cache ID for use by plugins (e.g. Form) via
Pages::getPagesCacheId() - Added
Languages::resetFallbackPageExtensions()regarding #1276
- Exposed the Pages cache ID for use by plugins (e.g. Form) via
-
- Allowed CLI to use non-volatile cache drivers for better integration with CLI and Web caches
- Added Gantry5-compatible query information to Caddy configuration
- Added some missing docblocks and type-hints
- Various code cleanups (return types, missing variables in doclbocks, etc.)
-
- Fix blueprints slug validation https://github.com/getgrav/grav-plugin-admin/issues/955
v1.1.15
01/30/2017
-
- Added a new
Collection::merge()method to allow merging of multiple collections #1258 - Added OpenCollective backer/sponsor info to
README.md
- Added a new
v1.1.14
01/18/2017
-
- Fixed
Page::collection()returning array and not Collection object when header variable did not exist - Revert
Content-Encoding: identityfix, and let you setcache: allow_webserver_gzip:option to switch toidentity#548
- Fixed
v1.1.13
01/17/2017
-
- Added new
never_cache_twigpage option insystem.yamland frontmatter. Allows dynamic Twig logic in regular and modular Twig templates #1244
- Added new
-
- Several improvements to aid theme development #232
- Added
hashcache check option and made dropdown more descriptive Admin #923
-
- Fixed cross volume file system operations #635
- Fix issue with pages folders validation not accepting uppercase letters
- Fix renaming the folder name if the page, in the default language, had a custom slug set in its header
- Fixed issue with
Content-Encoding: none. It should really beContent-Encoding: identityinstead - Fixed broken
hashmethod on page modifications detection - Fixed issue with multi-lang pages not caching independently without unique
.mdfile #1211 - Fixed all
$_GETparameters missing in Nginx (please update your nginx.conf) #1245 - Fixed issue in trying to process broken symlink #1254
v1.1.12
12/26/2016
-
- Fixed issue with JSON calls throwing errors due to debugger enabled #1227
v1.1.11
12/22/2016
-
- Fall back properly to HTML if template type not found
-
- Fix issue with modular pages folders validation #900
v1.1.10
12/21/2016
-
- Fixed case where extracting a package would cause an error during rename
- Fix issue with using
Yaml::parsedirecly on a filename, now deprecated - Add pattern for frontend validation of folder slugs #891
- Fix issue with Inflector when translation is disabled SimpleSearch #87
- Explicitly expose
array_uniqueTwig filter Admin #897
v1.1.9
12/13/2016
-
- RC released as stable
-
- Better error handling in cache clear
- YAML syntax fixes for the future compatibility
- Added new parameter
removeforonBeforeCacheClearevent - Add support for calling Media object as function to get medium by filename
-
- Added checks before accessing admin reference during
Page::blueprints()call. Allows to accesspage.blueprintsfrom Twig in the frontend
- Added checks before accessing admin reference during
v1.1.9-rc.3
12/07/2016
-
- Add
ignore_emptyproperty to be used on array fields, if positive only save options with a value - Use new
permissionsfield in user account - Add
range(int start, int end, int step)twig function to generate an array of numbers between start and end, inclusive - New retina Media image derivatives array support (
) #1147 - Added stream support for images (
) - Added stream support for links (
[Download PDF](user://data/pdf/my.pdf)) - Added new
onBeforeCacheClearevent to add custom paths to cache clearing process
- Add
-
- Added alias
selfupdateto theself-upgradebin/gpmCLI command - Synced
webserver-configs/htaccess.txtwith.htaccess - Use permissions field in group details.
- Updated vendor libraries
- Added a warning on GPM update to update Grav first if needed #1194
- Added alias
v1.1.9-rc.2
11/26/2016
-
- Added two new sort order options for pages:
publish_dateandunpublish_date#1173)
- Added two new sort order options for pages:
-
- Multisite: Create image cache folder if it doesn't exist
- Add 2 new language values for French #1174
-
- Fixed issue when we have a meta file without corresponding media #1179
- Update class namespace for Admin class Admin #874
v1.1.9-rc.1
11/09/2016
-
- Added a
CompiledJsonFileobject to better handle Json files. - Added Base32 encode/decode class
- Added a new
User::find()method
- Added a
-
- Moved
messagesobject into core Grav from login plugin - Added
getTaxonomyItemKeysto the Taxonomy object #1124 - Added a
redirect_meTwig function #1124 - Added a Caddyfile for newer Caddy versions #1115
- Allow to override sorting flags for page header-based or default ordering. If the
intlPHP extension is loaded, only these flags are available: https://secure.php.net/manual/en/collator.asort.php. Otherwise, you can use the PHP standard sorting flags (https://secure.php.net/manual/en/array.constants.php) #1169
- Moved
-
- Fixed an issue with site redirects/routes, not processing with extension (.html, .json, etc.)
- Don't truncate HTML if content length is less than summary size #1125
- Return max available number when calling random() on a collection passing an int > available items #1135
- Use correct ratio when applying image filters to image alternatives #1147
- Fixed URI path in multi-site when query parameters were used in front page
v1.1.8
10/22/2016
-
- Fixed warning with unset
ssloption when using GPM #1132
- Fixed warning with unset
v1.1.7
10/22/2016
-
- Improved the capabilities of Image derivatives #1107
-
- Only pass verify_peer settings to cURL and fopen if the setting is disabled #1120
v1.1.6
10/19/2016
-
- Added ability for Page to override the output format (
html,xml, etc..) #1067 - Added
Utils::getExtensionByMime()and cleaned upUtils::getMimeByExtension+ tests - Added a
cache.check.method: 'hash'option insystem.yamlthat checks all files + dates inclusively - Include jQuery 3.x in the Grav assets
- Added the option to automatically fix orientation on images based on their Exif data, by enabling
system.images.auto_fix_orientation.
- Added ability for Page to override the output format (
-
- Add
batch()function to Page Collection class - Added new
cache.redis.socketsetting that allow to pass a UNIX socket as redis server - It is now possible to opt-out of the SSL verification via the new
system.gpm.verify_peersetting. This is sometimes necessary when receiving a "GPM Unable to Connect" error. More details in (#1053) - It is now possible to force the use of either
curlorfopenasResponseconnection method, via the newsystem.gpm.methodsetting. By default this is set to 'auto' and gives priority to 'fopen' first, curl otherwise. - InstallCommand can now handle Licenses
- Uses more helpful
1x,2x,3x, etc names in the Retina derivatives cache files. - Added new method
Plugins::isPluginActiveAdmin()to check if plugin route is active in Admin plugin - Added new
Cache::setEnabledandCache::getEnabledto enable outside control of cache - Updated vendor libs including Twig
1.25.0 - Avoid git ignoring any vendor folder in a Grav site subfolder (but still ignore the main
vendor/folder) - Added an option to get just a route back from
Uri::convertUrl()function - Added option to control split session #1096
- Added new
verbositylevels tosystem.error.displayto allow for system error messages #1091 - Improved the API for Grav plugins to access the Parsedown parser directly #1062
- Add
-
- Fixed missing
progressmethod in the DirectInstall Command Responseclass now handles better unsuccessful requests such as 404 and 401- Fixed saving of
externalpage types Admin #789 - Fixed issue deleting parent folder of folder with
param_sepin the folder name admin #796 - Fixed an issue with streams in
bin/plugin - Fixed
jpegfile format support in Media
- Fixed missing
v1.1.5
09/09/2016
-
- Added new
bin/gpm direct-installcommand to install local and remote zip archives
- Added new
-
- Refactored
onPageNotFoundevent to fire afteronPageInitialized - Follow symlinks in
Folder::all() - Twig variable
base_urlnow supports multi-site by path feature - Improved
bin/pluginto list plugins with commands faster by limiting the depth of recursion
- Refactored
-
- Quietly skip missing streams in
Cache::clearCache() - Fix issue in calling page.summary when no content is present in a page
- Fix for HUGE session timeouts #1050
- Quietly skip missing streams in
v1.1.4
09/07/2016
-
- Added new
tmpfolder at root. Accessible via streamtmp://. Can be cleared withbin/grav clear --tmp-onlyas well as--all. - Added support for RTL in
LanguageCodesso you can determine if a language is RTL or not - Ability to set
custom_base_urlin system configuration - Added
overrideandforceoptions for Streams setup
- Added new
-
- Important vendor updates to provide PHP 7.1 beta support!
- Added a
Util::arrayFlatten()static function - Added support for 'external_url' page header to enable easier external URL based menu items
- Improved the UI for CLI GPM Index view to use a table
- Added
@page.modularCollection type #988 - Added support for
self@,page@,taxonomy@,root@Collection syntax for cleaner YAML compatibility - Improved GPM commands to allow for
-yto automate yes responses and-ofor update and selfupgrade to overwrite installations #985 - Added randomization to
safe_emailTwig filter for greater security #998 - Allow
Utils::setDotNotationto merge data, rather than just set - Moved default
Image::filter()to thesaveaction to ensure they are applied last #984 - Improved the
Truncatorcode to be more reliable #1019 - Moved media blueprints out of core (now in Admin plugin)
-
- Removed 307 redirect code option as it is not well supported #743
- Fixed issue with folders with name
*.mdare not confused with pages #995 - Fixed an issue when filtering collections causing null key
- Fix for invalid HTML when rendering GIF and Vector media #1001
- Use pages.markdown.extra in the user's system.yaml #1007
- Fix for
Memcachedconnection #1020
v1.1.3
08/14/2016
-
- Fix for lightbox media function throwing error #981
v1.1.2
08/10/2016
-
- Allow forcing SSL by setting
system.force_ssl(Force SSL in the Admin System Config) #899
- Allow forcing SSL by setting
-
- Fixed
Folder::deletemethod to recursively remove files and folders and causing Upgrade to fail. - Fix #952 hyphenize the session name.
- If no parent is set and siblings collection is called, return a new and empty collection grav-plugin-sitemap/issues/22
- Prevent exception being thrown when calling the Collator constructor failed in a Windows environment with the Intl PHP Extension enabled #961
- Fix for markdown images not properly rendering
idattribute #956
- Fixed
v1.1.1
07/16/2016
-
- Made
paramsRegex()static to allow it to be called statically
- Made
-
- Fixed backup when using very long site titles with invalid characters grav-plugin-admin#701
- Fixed a typo in the
webserver-configs/nginx.confexample
v1.1.0
07/14/2016
-
- Added support for validation of multiple email in the
type: emailfield grav-plugin-email#31 - Unified PHP code header styling
- Added 6 more languages and updated language codes
- set default "releases" option to
stable
- Added support for validation of multiple email in the
-
- Fix backend validation for file fields marked as required grav-plugin-form#78
v1.1.0-rc.3
06/21/2016
-
- Take asset modification timestamp into consideration in pipelining #917 - @Sommerregen
v1.1.0-rc.2
06/14/2016
-
- Added getters and setters for Assets to allow manipulation of CSS/JS/Collection based assets via plugins #876
-
- Pass the exception to the
onFatalException()event - Updated to latest jQuery 2.2.4 release
- Moved list items in
system/config/media.yamlconfig into atypes:key which allows you delete default items. - Updated
webserver-configs/nginx.confwithtry_filesfix from @mrhein and @rondlite #743 - Updated cache references to include
memecacheandredis#887 - Updated composer libraries
- Pass the exception to the
-
- Fixed
Utils::normalizePath()that was truncating 0's #882
- Fixed
v1.1.0-rc.1
06/01/2016
-
- GPM installation of plugins and themes into correct multisite folders #841
- Use
Page::rawRoute()in blueprints for more reliable mulit-language support
-
- Fixes for
zlib.output_compressionas well asmod_deflateGZIP compression - Fix for corner-case redirect logic causing infinite loops and out-of-memory errors
- Fix for saving fields in expert mode that have no
Validation::typeX()methods #626 - Detect if user really meant to extend parent blueprint, not another one (fixes old page type blueprints)
- Fixed a bug in
Page::relativePagePath()whenPage::$nameis not defined - Fix for poor handling of params + query element in
Uri::processParams()#859 - Fix for double encoding in markdown links #860
- Correctly handle language strings to determine if it's in admin or not #627
- Fixes for
v1.1.0-beta.5
05/23/2016
-
- Updated jQuery from 2.2.0 to 2.2.3
- Set
Uri::ip()to static by default so it can be used in form fields - Improved
Sessionclass with flash storage Page::getContentMeta()now supports an optional key.
-
- Fixed "Invalid slug set in YAML frontmatter" when setting
Page::slug()with empty string #580 - Only
.gitignoreGrav's vendor folder - Fix trying to remove Grav with
GPM uninstallof a plugin with Grav dependency - Fix Page Type blueprints not being able to extend their parents
filterFilevalidation method always returns an array of files, behaving likemultiple="multiple"- Fixed #835 check for empty image file first to prevent getimagesize() fatal error
- Avoid throwing an error when Grav's Gzip and mod_deflate are enabled at the same time on a non php-fpm setup
- Fixed "Invalid slug set in YAML frontmatter" when setting
v1.1.0-beta.4
05/09/2016
-
- Drop dependencies calculations if plugin is installed via symlink
- Drop Grav from dependencies calculations
- Send slug name as part of installed packages
- Fix for summary entities not being properly decoded #825
v1.1.0-beta.3
05/04/2016
-
- Pass the Page type when calling
onBlueprintCreated - Changed
Page::cachePageContent()form private to public so a page can be recached via plugin
- Pass the Page type when calling
-
- Fixed handling of
{'loading':'async'}with Assets Pipeline - Fix for new modular page modal
Pagefield requiring a value #529 - Fix for broken
bin/gpm versioncommand - Fix handling "grav" as a dependency
- Fix when installing multiple packages and one is the dependency of another, don't try to install it twice
- Fix using name instead of the slug to determine a package folder. Broke for packages whose name was 2+ words
- Fixed handling of
v1.1.0-beta.2
04/27/2016
-
- Added new
Plugin::getBlueprint()andTheme::getBlueprint()method - Allow page blueprints to be added via Plugins.
- Added new
-
- Moved to new
data-*@format in blueprints - Updated composer-based libraries
- Moved some hard-coded
CACHE_DIRreferences to use locator - Set
twig.debug: trueby default
- Moved to new
v1.1.0-beta.1
04/20/2016
-
- Blueprint Improvements: The main improvements to Grav take the form of a major rewrite of our blueprint functionality. Blueprints are an essential piece of functionality within Grav that helps define configuration fields. These allow us to create a definition of a form field that can be rendered in the administrator plugin and allow the input, validation, and storage of values into the various configuration and page files that power Grav. Grav 1.0 had extensive support for building and extending blueprints, but Grav 1.1 takes this even further and adds improvements to our existing system.
- Extending Blueprints: You could extend forms in Grav 1.0, but now you can use a newer
extends@:default syntax rather than the previous'@extends'string that needed to be quoted in YAML. Also this new format allows for the defining of acontextwhich lets you define where to look for the base blueprint. Another new feature is the ability to extend from multiple blueprints. - Embedding/Importing Blueprints: One feature that has been requested is the ability to embed or import one blueprint into another blueprint. This allows you to share fields or sub-form between multiple forms. This is accomplished via the
import@syntax. - Removing Existing Fields and Properties: Another new feature is the ability to remove completely existing fields or properties from an extended blueprint. This allows the user a lot more flexibility when creating custom forms by simply using the new
unset@: truesyntax. To remove a field property you would useunset-<property>@: truein your extended field definition, for example:unset-options@: true. - Replacing Existing Fields and Properties: Similar to removing, you can now replace an existing field or property with the
replace@: truesyntax for the whole field, andreplace-<property>@: truefor a specific property. - Field Ordering: Probably the most frequently requested blueprint functionality that we have added is the ability to change field ordering. Imagine that you want to extend the default page blueprint but add a new tab. Previously, this meant your tab would be added at the end of the form, but now you can define that you wish the new tab to be added right after the
contenttab. This works for any field too, so you can extend a blueprint and add your own custom fields anywhere you wish! This is accomplished by using the newordering@:syntax with either an existing property name or an integer. - Configuration Properties: Another useful new feature is the ability to directly access Grav configuration in blueprints with
config-<property>@syntax. For example you can set a default for a field viaconfig-default@: site.author.namewhich will use the author.name value from thesite.yamlfile as thedefaultvalue for this field. - Function Calls: The ability to call PHP functions for values has been improved in Grav 1.1 to be more powerful. You can use the
data-<property>@syntax to call static methods to obtain values. For example:data-default@: '\Grav\Plugin\Admin::route'. You can now even pass parameters to these methods. - Validation Rules: You can now define a custom blueprint-level validation rule and assign this rule to a form field.
- Custom Form Field Types: This advanced new functionality allows you to create a custom field type via a new plugin event called getFormFieldTypes(). This allows you to provide extra functionality or instructions on how to handle the form form field.
- GPM Versioning: A new feature that we have wanted to add to our GPM package management system is the ability to control dependencies by version. We have opted to use a syntax very similar to the Composer Package Manager that is already familiar to most PHP developers. This new versioning system allows you to define specific minimum version requirements of dependent packages within Grav. This should ensure that we have less (hopefully none!) issues when you update one package that also requires a specific minimum version of another package. The admin plugin for example may have an update that requires a specific version of Grav itself.
- GPM Testing Channel: GPM repository now comes with both a
stableandtestingchannel. A new setting insystem.gpm.releasesallow to switch between the two channels. Developers will be able to decide whether their resource is going to be in a pre-release state or stable. Only users who switch to the testing channel will be able to install a pre-release version. - GPM Events: Packages (plugins and themes) can now add event handlers to hook in the package GPM events: install, update, uninstall. A package can listen for events before and after each of these events, and can execute any PHP code, and optionally halt the procedure or return a message.
- Refactor of the process chain breaking out
Processorsinto individual classes to allow for easier modification and addition. Thanks to toovy for this work. - #745 - Added multipart downloads, resumable downloads, download throttling, and video streaming in the
Utils::download()method. - Added optional config to allow Twig processing in page frontmatter - #788
- Added the ability to provide blueprints via a plugin (previously limited to Themes only).
- Added Developer CLI Tools to easily create a new theme or plugin
- Allow authentication for proxies - #698
- Allow to override the default Parsedown behavior - #747
- Added an option to allow to exclude external files from the pipeline, and to render the pipeline before/after excluded files
- Added the possibility to store translations of themes in separate files inside the
languagesfolder - Added a method to the Uri class to return the base relative URL including the language prefix, or the base relative url if multilanguage is not enabled
- Added a shortcut for pages.find() alias
-
- Now supporting hostnames with localhost environments for better vhost support/development
- Refactor hard-coded paths to use PHP Streams that allow a setup file to configure where certain parts of Grav are stored in the physical filesystem.
- If multilanguage is active, include the Intl Twig Extension to allow translating dates automatically (http://twig.sensiolabs.org/doc/extensions/intl.html)
- Allow having local themes with the same name as GPM themes, by adding
gpm: falseto the theme blueprint - #767 - Caddyfile and Lighttpd config files updated
- Removed
node_modulesfolder from backups to make them faster - Display error when
bin/grav installhasn't been run instead of throwing exception. Prevents "white page" errors if error display is off - Improved command line flow when installing multiple packages: don't reinstall packages if already installed, ask once if should use symlinks if symlinks are found
- Added more tests to our testing suite
- Added x-ua-compatible to http_equiv metadata processing
- Added ability to have a per-page
frontmatter.yamlfile to set header frontmatter defaults. Especially useful for multilang scenarios - #775 - Removed deprecated
bin/grav newuserCLI command. usebin/plugin login newuserinstead. - Added
webmandogvvideo types to the default media types list.
-
- Fix Zend Opcache
opcache.validate_timestamps=0not detecting changes in compiled yaml and twig files - Avoid losing params, query and fragment from the URL when auto-redirecting to a language-specific route - #759
- Fix for non-pipeline assets getting lost when pipeline is cached to filesystem
- Fix for double encoding resulting from Markdown Extra
- Fix for a remote link breaking all CSS rewrites for pipeline
- Fix an issue with Retina alternatives not clearing properly between repeat uses
- Fix for non standard http/s external markdown links - #738
- Fix for
find()calling redirects viadispatch()causing infinite loops - #781
- Fix Zend Opcache
v1.0.10
02/11/2016
-
- Added new
Page::contentMeta()mechanism to store content-level meta data alongside content - Added Japanese language translation
- Added new
-
- Updated some vendor libraries
-
- Hide
streamsblueprint from Admin plugin - Fix translations of languages with
---in YAML files
- Hide
v1.0.9
02/05/2016
-
- New Unit Testing via Codeception http://codeception.com/
- New page-level SSL functionality when using
absolute_urls - Added
reverse_proxyconfig option for issues with non-standard ports - Added
proxy_urlconfig option to support GPM behind proxy servers #639 - New
Pages::parentsRawRoutes()method - Enhanced
bin/gpm infoCLI command with Changelog support #559 - Ability to add empty Folder via admin plugin
- Added latest
jQuery 2.2.0library to core - Added translations from Crowdin
-
- [BC] Metadata now supports only flat arrays. To use open graph metas and the likes (ie, 'og:title'), simply specify it in the key.
- Refactored
Uri::convertUrl()method to be more reliable + tests created - Date for last update of a modular sub-page sets modified date of modular page itself
- Split configuration up into two steps
- Moved Grav-based
base_urivariables intoUri::init() - Refactored init in
URIto better support testing - Allow
twig_varsto be exposed earlier and merged later - Avoid setting empty metadata
- Accept single group access as a string rather than requiring an array
- Return
$thisin Page constructor and init to allow chaining - Added
ext-*PHP requirements tocomposer.json - Use Whoops 2.0 library while supporting old style
- Removed redundant old default-hash fallback mechanisms
- Commented out default redirects and routes in
site.yaml - Added
/testsfolder to deny's of allwebserver-configs/*files - Various PS and code style fixes
-
- Fix default generator metadata
- Fix for broken image processing caused by
Uri::convertUrl()bugs - Fix loading JS and CSS from collections #623
- Fix stream overriding
- Remove the URL extension for home link
- Fix permissions when the user has no access level set at all
- Fix issue with user with multiple groups getting denied on first group
- Fixed an issue with
Pages()internal cache lookup not being unique enough - Fix for bug with
site.redirectsandsite.routesbeing an empty list - [Markdown] Don't process links for special protocols
- [Whoops] serve JSON errors when request is JSON
v1.0.8
01/08/2016
-
- Added
rotate,flipandfixOrientationimage medium methods
- Added
-
- Removed IP from Nonce generation. Should be more reliable in a variety of scenarios
v1.0.7
01/07/2016
-
- Added
composer create-projectas an additional installation method #585 - New optional system config setting to strip home from page routs and urls #561
- Added Greek, Finnish, Norwegian, Polish, Portuguese, and Romanian languages
- Added new
Page->topParent()method to return top most parent of a page - Added plugins configuration tab to debugger
- Added support for APCu and PHP7.0 via new Doctrine Cache release
- Added global setting for
twig_firstprocessing (false by default) - New configuration options for Session settings #553
- Added
-
- Switched to SSL for GPM calls
- Use
URI->host()for session domain - Add support for
open_basedirwhen installing packages via GPM - Improved
Utils::generateNonceString()method to handle reverse proxies - Optimized core thumbnails saving 38% in file size
- Added new
bin/gpm index --installed-onlyoption - Improved GPM errors to provider more helpful diagnostic of issues
- Removed old hardcoded PHP version references
- Moved
onPageContentProcessed()event so it's fired more reliably - Maintain md5 keys during sorting of Assets #566
- Update to Caddyfile for Caddy web server
-
- Fixed an issue with cache/config checksum not being set on cache load
- Fix for page blueprint and theme inheritance issue #534
- Set
ZipBackuptimeout to 10 minutes if possible - Fix case where we only have inline data for CSS or JS #565
- Fix
bin/grav sandboxcommand to work with newwebserver-configfolder - Fix for markdown attributes on external URLs
- Fixed issue where
data:page header was acting aspublish_date: - Fix for special characters in URL parameters (e.g. /tag:c++) #541
- Safety check for an array of nonces to only use the first one
v1.0.6
12/22/2015
-
- Set minimum requirements to PHP 5.5.9
- Added
saveConfigto Themes
-
- Updated Whoops to new 2.0 version (PHP 7.0 compatible)
- Moved sample web server configs into dedicated directory
- FastCGI will use Apache's
mod_deflateif gzip turned off
-
- Fix broken media image operators
- Only call extra method of blueprints if blueprints exist
- Fix lang prefix in url twig variables #523
- Fix case insensitive HTTPS check #535
- Field field validation handles case
multiplemissing
v1.0.5
12/18/2015
-
- Add ability to extend markdown with plugins
- Added support for plugins to have individual language files
- Added
7zto media formats - Use Grav's fork of Parsedown until PR is merged
- New function to persist plugin configuration to disk
- GPM
selfupgradewill now check PHP version requirements
-
- If the field allows multiple files, return array
- Handle non-array values in file validation
-
- Fix when looping
fieldsparam in alistfield - Properly convert commas to spaces for media attributes
- Forcing Travis VM to HI timezone to address future files in zip file
- Fix when looping
v1.0.4
12/12/2015
v1.0.3
12/11/2015
v1.0.2
12/11/2015
v1.0.1
12/11/2015
-
- Reduced package sizes by removing extra vendor dev bits
-
- Fix issue when you enable debugger from admin plugin
v1.0.0
12/11/2015
-
- Add new link attributes via markdown media
- Added setters to set state of CSS/JS pipelining
- Added
user/accountsto.gitignore - Added configurable permissions option for Image cache
-
- Hungarian translation updated
- Refactored Theme initialization for improved flexibility
- Wrapped security section of account blueprints in an 'super user' authorize check
- Minor performance optimizations
- Updated core page blueprints with markdown preview option
- Added useful cache info output to Debugbar
- Added
iconvpolyfill library used by Symfony 2.8 - Force lowercase of username in a few places for case sensitive filesystems
-
- Fix for GPM problems "Call to a member function set() on null"
- Fix for individual asset pipeline values not functioning
- Fix
Page::copy()andPage::move()to support multiple moves at once - Fixed page moving of a page with no content
- Fix for wrong ordering when moving many pages
- Escape root path in page medium files to work with special characters
- Add missing parent constructor to Themes class
- Fix missing file error in
bin/grav sandboxcommand - Fixed changelog differ when upgrading Grav
- Fixed a logic error in
Validation->validate() - Make
$containeravailable insetup.phpto fix multi-site
v1.0.0-rc.6
12/01/2015
-
- Refactor Config classes for improved performance!
- Refactor Data classes to use
NestedArrayAccessinstead ofDataMutatorTrait - Added support for
classesandidon medium objects to set CSS values - Data objects: Allow function call chaining
- Data objects: Lazy load blueprints only if needed
- Automatically create unique security salt for each configuration
- Added Hungarian translation
- Added support for User groups
-
- Improved robots.txt to disallow crawling of non-user folders
- Nonces only generated once per action and process
- Added IP into Nonce string calculation
- Nonces now use random string with random salt to improve performance
- Improved list form handling #475
- Vendor library updates
-
- Fixed help output for
bin/plugin - Fix for nested logic for lists and form parsing #273
- Fix for array form fields and last entry not getting deleted
- Should not be able to set parent to self #308
- Fixed help output for
v1.0.0-rc.5
11/20/2015
-
- Added nonce functionality for all admin forms for improved security
- Implemented the ability for Plugins to provide their own CLI commands through
bin/plugin - Added Croatian translation
- Added missing
umask_fixproperty tosystem.yaml - Added current theme's config to global config. E.g.
config.theme.dropdown_enabled - Added
append_url_extensionoption to system config & page headers - Users have a new
stateproperty to allow disabling/banning - Added new
Page.relativePagePath()helper method - Added new
|padTwig filter for strings (usesstr_pad()) - Added
lighttpd.conffor Lightly web server
-
- Clear previously applied operations when doing a reset on image media
- Password no longer required when editing user
- Improved support for trailing
/URLs - Improved
.nginx.confconfiguration file - Improved
.htaccesssecurity - Updated vendor libs
- Updated
composer.phar - Use streams instead of paths for
clearCache() - Use PCRE_UTF8 so unicode strings can be regexed in Truncator
- Handle case when login plugin is disabled
- Improved
qualityfunctionality in media handling - Added some missing translation strings
- Deprecated
bin/grav newuserin favor ofbin/plugin login new-user - Moved fallback types to use any valid media type
- Renamed
system.pages.fallback_typestosystem.media.allowed_fallback_types - Removed version number in default
generatormeta tag - Disable time limit in case of slow downloads
- Removed default hash in
system.yaml
-
- Fix for media using absolute URLs causing broken links
- Fix theme auto-loading #432
- Don't create empty
<style>or<script>scripts if no data - Code cleanups
- Fix undefined variable in Config class
- Fix exception message when label is not set
- Check in
Plugins::get()to ensure plugins exists - Fixed GZip compression making output buffering work correctly with all servers and browsers
- Fixed date representation in system config
v1.0.0-rc.4
10/29/2015
v1.0.0-rc.3
10/29/2015
-
- New Page collection options!
@self.parent, @self.siblings, @self.descendants+ more - White list of file types for fallback route functionality (images by default)
- New Page collection options!
-
- Assets switched from defines to streams
-
- 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
-
- Added support for CSS Asset groups
- Added a
wrapped_sitesystem option for themes/plugins to use - Pass
Pageobject as event toonTwigPageVariables()event hook - New
Data.items()method to get all items
-
- Missing pipelined remote asset will now fail quietly
- More reliably handle inline JS and CSS to remove only surrounding HTML tags
Medium.metareturns 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
-
- Accept variety of
truevalues inUser.authorize()method - Fix for
Validationthrowing an error if no label set
- Accept variety of
v1.0.0-rc.1
10/23/2015
-
- 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
|evaluateTwig 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_filtersfor page collections - Added
@rootpage andrecurseflag for page collections - Support for multiple page collection types as an array
- Added Dutch language file
- Added Russian language file
- Added
removemethod to User object
-
- Moved hardcoded mimetypes to
media.yamlto be treated as Page media files - Set
errors: display: falseby default insystem.yaml - Strip out extra slashes in the URI
- Validate hostname to ensure it is valid
- Ignore more SCM folders in Backups
- Removed
home_redirectsettings fromsystem.yaml - Added Page
mediaas 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
.htaccessfor increased security - Debugbar vendor library update
- Always fallback to english if other translations are not available
- Moved hardcoded mimetypes to
-
- 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
SVGmimetype - Fixed incorrect
Cache-control: max-agevalue format
v0.9.45
10/08/2015
v0.9.44
10/07/2015
-
- Added Redis back as a supported cache mechanism
- Allow Twig
nicetimetranslations - Added
-yoption for 'Yes to all' inbin/gpm update - Added CSS
mediaattribute to the Assets manager - New German language support
- New Czech language support
- New French language support
- Added
modulustwig filter
-
- URL decode in medium actions to allow complex syntax
- Take into account
HTTP_HOSTbeforeSERVER_NAME(helpful with Nginx) - More friendly cache naming to ease manual management of cache systems
- Added default Apache resource for
DirectoryIndex
-
- Fix GPM failure when offline
- Fix
open_basedirerror inbin/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
-
- Added new
AudioMediumfor HTML5 audio - Added ability for Assets to be added and displayed in separate groups
- New support for responsive image derivative sizes
- Added new
-
- GPM theme install now uses a
copymethod 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
- GPM theme install now uses a
-
- 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 intruncateHtml()viaPage.summary()
v0.9.42
09/11/2015
v0.9.41
09/11/2015
-
- New and improved multibyte-safe TruncateHTML function and filter
- Added support for custom page date format
- Added a
stringTwig filter to render as json_encoded string - Added
authorizeTwig 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
mbstringsupport - Added new
redirectheader for pages
-
- Changed dependencies from
developtomaster - Updated logging to log everything from
debuglevel on (waswarning) - 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 newusercommand
- Changed dependencies from
-
- Fixed
Pages.all()not returning modular pages - Fix for modular template types not getting found
- Fix for
markdown_extra:overridingmarkdown:extra:setting - Fix for multi-site routing
- Fix for multi-lang page name error
- Fixed a redirect loop in
URIclass - Fixed a potential error when
unsupported_inline_typesis empty - Correctly generate 2x retina image
- Typo fixes in page publish/unpublish blueprint
- Fixed
v0.9.40
08/31/2015
-
- Added some new Twig filters:
defined,rtrim,ltrim - Admin support for customizable page file name + template override
- Added some new Twig filters:
-
- 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
.htaccesshardening (.htaccess&htaccess.txt)- Cache safety checks for missing folders
-
- Fixed issue with unescaped
ocharacter in date formats
- Fixed issue with unescaped
v0.9.39
08/25/2015
v0.9.38
08/24/2015
-
- Added
languageto 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
- Added
-
- 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
-
- Slug fixes with GPM
- Unset plaintext password on save
- Fix for trailing
/not matching active children
v0.9.37
08/12/2015
-
- Fixed issue when saving
header.processin page forms via the admin plugin - Fixed error due to use of
set_time_limitthat might be disabled on some hosts
- Fixed issue when saving
v0.9.36
08/11/2015
-
- Added a new
newuserCLI command to create user accounts - Added
defaultblueprint for all templates - Support
userandsystemlanguage translation merging
- Added a new
-
- 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_ROOTin session identifier
v0.9.35
08/06/2015
-
- Added
body_classesfield - Added
visiblitytoggle and help tooltips on new page form - Added new
Page.unsetRoute()method to allow admin to regenerate the route
- Added
-
- 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
-
- 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: 1exception - Removed duplicate hidden page
typefield
v0.9.34
08/04/2015
-
- Added new
cache_allsystem setting + mediacache()method - Added base languages configuration
- Added property language to page to help plugins identify page language
- New
Utils::arrayFilterRecursive()method
- Added new
-
- 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
Inflectorfrom static to object and added multi-language support - Support for admin override of a page's blueprints
-
- Removed unused
useinVideoMediumthat was causing error - Array fix in
User.authorise()method - Fix for typo in
translations_fallback - Fixed moving page to the root
- Removed unused
v0.9.33
07/21/2015
-
- Added new
onImageMediumSaved()event (useful for post-image processing) - Added
Vary: Accept-Encodingoption
- Added new
-
- Multilang-safe delimiter position
- Refactored Twig classes and added optional umask setting
- Removed
pageinit()timing Page->routable()now takespublished()state into account- Improved how page extension is set
- Support
Language->translate()method taking string and array
-
- Fixed
backupcommand to include empty folders
- Fixed
v0.9.32
07/14/2015
-
- Detect users preferred language via
http_accept_languagesetting - Added new
translateArray()language method
- Detect users preferred language via
-
- Support
entranslations by default for plugins & themes - Improved default generator tag
- Minor language tweaks and fixes
- Support
-
- Fix for session active language and homepage redirects
- Ignore root-level page rather than throwing error
v0.9.31
07/09/2015
-
- Added xml, json, css and js to valid media file types
-
- Better handling of unsupported media type downloads
- Improved
bin/grav backupcommand to mimic admin plugin location/name
-
- Critical fix for broken language translations
- Fix for Twig markdown filter error
- Safety check for download extension
v0.9.30
07/08/2015
-
- 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
-
- Improved
Page.active()andPage.activeChild()methods to support route aliases - Various spelling corrections in
.phpcomments,.mdand.yamlfiles Utils::startsWith()andUtils::endsWith()now support needle arrays- Added a new timer around
pageInitializedevent - Updated jQuery library to v2.1.4
- Improved
-
- In-page CSS and JS files are now handled properly
- Fix for
enable_media_timestampnot working properly
v0.9.29
06/22/2015
-
- New and improved Regex-powered redirect and route alias logic
- Added new
onBuildPagesInitializedevent for memory critical or time-consuming plugins - Added a
setSummary()method for pages
-
- Improved
MergeConfig()logic for more control - Travis skeleton build trigger implemented
- Set composer.json versions to stable versions where possible
- Disabled
last_modifiedandetagpage headers by default (causing too much page caching)
- Improved
-
- Preload classes during
bin/gpm selfupgradeto avoid issues with updated classes - Fix for directory relative down links
- Preload classes during
v0.9.28
06/16/2015
-
- Added method to set raw markdown on a page
- Added ability to enabled system and page level
etagandlast_modifiedheaders
-
- Improved image path processing
- Improved query string handling
- Optimization to image handling supporting URL encoded filenames
- Use global
composerwhen available rather than Grv provided one - Use
PHP_BINARYconstant rather thanphpexecutable - Updated Doctrine Cache library
- Updated Symfony libraries
- Moved
convertUrl()method to Uri object
-
- 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
- Fix incorrect slug causing problems with CLI
v0.9.27
05/09/2015
-
- Added new composer CLI command
- Added page-level summary header overrides
- Added
sizeback for Media objects - Refactored Backup command in preparation for admin plugin
- Added a new
parseLinksmethod to Plugins class - Added
starts_withandends_withTwig filters
-
- 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::rcopytoFolder::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
-
- 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
- Fix issue with Gzip not working with
v0.9.26
04/24/2015
v0.9.25
04/24/2015
-
- Added support for E-Tag, Last-Modified, Cache-Control and Page-based expires headers
-
- 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)
-
- Fix issues with spaces in webroot when using
bin/grav install - Fix for spaces in relative directory
- Bug fix in collection filtering
- Fix issues with spaces in webroot when using
v0.9.24
04/15/2015
-
- Added support for chunked downloads of Assets
- Added new
onBeforeDownload()event - Added new
download()andgetMimeType()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
-
- Fixed issue with Nginx/Gzip and
ob_flush()throwing error - Fixed assets actions on 'direct media' URLs
- Fix for 'direct assets` with any parameters
- Fixed issue with Nginx/Gzip and
v0.9.23
04/09/2015
-
- Fix for broken GPM
selfupgrade(Grav 0.9.21 and 0.9.22 will need to manually upgrade to this version)
- Fix for broken GPM
v0.9.22
04/08/2015
-
- Fix to normalize GRAV_ROOT path for Windows
- Fix to normalize Media image paths for Windows
- Fix for GPM
selfupgradewhen you are on latest version
v0.9.21
04/07/2015
-
- Major Media functionality enhancements: SVG, Animated GIF, Video support!
- Added ability to configure default image quality in system configuration
- Added
sizesattributes for custom retina image breakpoints
-
- Don't scale @1x retina images
- Add filter to Iterator class
- Updated various composer packages
- Various PSR fixes
v0.9.20
03/24/2015
-
- Added
addAsyncJs()andaddDeferJs()to Assets manager - Added support for extranal URL redirects
- Added
-
- Fix unpredictable asset ordering when set from plugin/system
- Updated
nginx.confto 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
-
- Fixed issue with markdown links to
#breaking HTML
- Fixed issue with markdown links to
v0.9.19
02/28/2015
-
- Added named assets capability and bundled jQuery into Grav core
- Added
first()andlast()toIteratorclass
-
- 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
-
- Fixed
Iterator.nth()method
- Fixed
v0.9.18
02/19/2015
-
- Added ability for GPM
installto automatically install_democontent 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_stringfor generating random id values - Added new Twig filter
markdownfor on-the-fly markdown processing - Added new Twig filter
absoluteUrlto convert relative to absolute URLs - Added new
processTemplate()method to Twig object for on-the-fly processing of twig template - Added
rcopy()andcontains()helper methods in Utils
- Added ability for GPM
-
- Provided new
param_sepvariable to better support Apache on Windows - Moved parsedown configuration into the trait
- Added optional deep-copy option to
mergeConfig()for plugins - Updated bundled
composer.pharpackage - Various Sensiolabs Insight fixes - Silver level now!
- Various PSR Fixes
- Provided new
-
- 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
-
- Added full HHVM support! Get your speed on with Facebook's crazy fast PHP JIT compiler
-
- More flexible page summary control
- Support CamelCase plugin and theme class names. Replaces dashes and underscores
- Moved summary delimiter into
site.yamlso it can be configurable - Various PSR fixes
-
- Fix for
mergeConfig()not falling back to defaults - Fix for
addInlineCss()andaddInlineJs()Assets not working between Twig tags - Fix for Markdown adding HTML tags into inline CSS and JS
- Fix for
v0.9.16
01/30/2015
-
- Added Retina and Responsive image support via Grav media and
srcsetimage attribute - Added image debug option that overlays responsive resolution
- Added a new image cache stream
- Added Retina and Responsive image support via Grav media and
-
- 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
-
- 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
-
- Typo in video mime types
- Fix for old
markdown_extrasystem 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
-
- 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
-
- 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
- Refactored
-
- Fix for HTML entities quotes in Metadata values
- Fix for
publishedsetting to have precedent ofpublish_dateandunpublish_date - Fix for
onShutdown()events not closing connections properly in php-fpm environments
v0.9.13
01/09/2015
-
- Added new published
true|falsestate in page headers - Added
publish_datein page headers to automatically publish page - Added
unpublish_datein 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
- Added new published
-
- 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
- Modified all Collection methods so they can be chained together:
-
- Fix
uninstallGPM command that was broken in last release - Fix for intermittent
undefined indexerror when working with Collections - Fix for date of some pages being set to incorrect future timestamps
- Fix
v0.9.12
01/06/2015
-
- Added an all-access robots.txt file for search engines
- Added new GPM
uninstallcommand - Added support for in-page Twig processing in modular pages
- Added configurable support for
undefinedTwig functions and filters
-
- Fall back to default
.htmltemplate if error occurs on non-html pages - Added ability to have PSR-1 friendly plugin names (CamelCase, no-dashes)
- Fix to
composer.jsonto deter API rate-limit errors - Added non-exception-throwing handler for undefined methods on
Mediumobjects
- Fall back to default
-
- Fix description for
self-upgrademethod of GPM command - Fix for incorrect version number when performing GPM
update - Fix for argument description of GPM
installcommand - Fix for recalcitrant CodeKit mac application
- Fix description for
v0.9.11
12/21/2014
-
- Added support for simple redirects as well as routes
-
- Handle Twig errors more cleanly
-
- 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
-
- Added Facebook-style
nicetimedate Twig filter
- Added Facebook-style
-
- Moved
clear-cachefunctionality into Cache object required for Admin plugin
- Moved
-
- Fix for undefined index with previous/next buttons
v0.9.9
12/05/2014
-
- Added new
@pagecollection type - Added
ksortandcontainsTwig filters - Added
gistTwig function
- Added new
-
- Refactored Page previous/next/adjacent functionality
- Updated to Symfony 2.6 for yaml/console/event-dispatcher libraries
- More PSR code fixes
-
- Fix for over-escaped apostrophes in YAML
v0.9.8
12/01/2014
-
- 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
-
- 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
-
- Fix issue with miscalculation of blog separator location
===
- Fix issue with miscalculation of blog separator location
v0.9.7
11/24/2014
-
- Nginx configuration updated
- Added gitter.im badge to README
- Removed
set_time_limit()and put checks aroundignore_user_abort - More PSR code fixes
-
- 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
-
- 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
-
- 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
-
- Added quality setting to medium for compression configuration of images
- Added new onPageContentProcessed() event that is post-content processing but pre-caching
-
- 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
-
- 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
-
- 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
-
- 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
-
- More YAML blueprint fixes
- Fix potential double // in assets
- Load debugger as early as possible
v0.9.3
10/09/2014
-
- GPM (Grav Package Manager) Added
- Support for multiple Grav configurations
- Dynamic media support via URL
- Added inlineCss and inlineJs support for Assets
-
- YAML caching for increased performance
- Use stream wrapper in pages, plugins and themes
- Switched to RocketTheme toolbox for some core functionality
- Renamed
setupCLI command tosandbox - 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_keytwig filter - Added
visible()androutable()filters to page collections - Use session class in shutdown process
- Improvements to modular page loading
- Various code cleanup and optimizations
-
- 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
-
- 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
-
- 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
-
- 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
-
- Added new
theme://PHP stream for current theme
- Added new
-
- Default to new
filemodification checking rather thanfolder - 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
- Default to new
-
- Fixed issue with page changes not being picked up
- Fixed Minify to provide
@supportstag 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
-
- 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
-
- PSR-4 Autoloader mechanism
- Tracy Debugger new
detectoption to detect running environment - Added new
randomcollection 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
.htaccessincluding section onRewriteBasewhich is needed for some hosting providers
-
- Fixed issue when installing in an apache userdir (~username) folder
- Various mobile CSS issues in default themes
- Various minor bug fixes