3.6.2-rc.1
Pre-release
Pre-release
🎉 Features
New markdown safe mode
The markdown parser now supports a safe mode, which escapes any custom HTML, while still parsing markdown correctly. Safe mode can now be enabled like this:
// helpers
kirbytext($text, [
'markdown' => [
'safe' => true
]
]);
kirbytextInline($text, [
'markdown' => [
'safe' => true
]
]);
markdown($text, [
'safe' => true
]);
// field methods
$page->text()->kirbytext([
'markdown' => [
'safe' => true
]
]);
$page->text()->kirbytextInline([
'markdown' => [
'safe' => true
]
]);
$page->text()->markdown([
'safe' => true
]);The safe mode is now also available as global markdown setting:
<?php
// config.php
return [
'markdown' => [
'safe' => true
]
];New Fiber dialog features
There are new options to define custom submit and cancel handlers for Fiber dialogs
// short version
this.$dialog('some/dialog', ({ dialog, value }) => {
// custom submit handler
});
// in options
this.$dialog('some/dialog', {
cancel: () => {
// custom cancel handler
},
submit: ({ dialog, value }) => {
// custom submit handler
}
});Dialogs can now also be defined synchronously instead of loading them from the server.
this.$dialog({
component: 'k-remove-dialog',
props: {
text: 'Do you really want to delete this entry?'
},
cancel: () => {
// custom cancel handler
},
submit: ({ dialog, value }) => {
// custom submit handler
}
});New Kirby\Toolkit\Date class #4040
- extension for PHP's DateTime class
- helps with all kinds of date and time related tasks
- is now used by our date and time fields and the
timestamp()helper - New
isoplugin fordayjsto parse and format ISO date/time/datetime strings
✨Enhancements
- Add missing locale parameter to
Cms\File::niceSize,Cms\Files::niceSize()andFilesystem\Dir::niceSize()#4045 - Adds several dayjs plugins for handle logic that we will need for refactoring the dates and time fields #4036:
a.merge(n, "time"): merges a defined part (dateortime) of dayjs objectbinto dayjs objectadayjs.pattern('YYYY-MM-DD"): class that supports analysing and interpreting a specific dayjs format patterndayjs.round("minute", 5): method to round current dayjs object to nearest step (unit and size)dayjs.units(is12h): a map between units and dayjs tokens given 12/24h clockdayjs.validate(): helper to validate a current dayjs object against a min/max boundary
- Frontend tests with Vitest #4064
- The JSON unexpected error message is now translatable #4081
- First component tests #4069
- New
this.$fiberglobal in Vue - Unit tests for all main Fiber parts
🐛 Fixes
- Various date and time field fixes
- Fix computed separator in date field #3946
- Fixed passing
nullto parameter tois_file()function inTpl::load()method on PHP 8.1 #4032 - No longer throws deprecation warning passing null to
Strfunctions - No longer throws deprecation warning implicit float to int conversion when scaling dimensions for an SVG
- Creating the user no longer collides with the content language in multi-language setups #4050
- Fixed calling
url()helper throws deprecation warning with PHP 8.1 #4047 - Enabling
linkin pages, files and users fields works correctly again #4062 - Fixed changing slug with unsaved changes leads to Panel error #4006
- Fixed selected tab when switching languages #4071
- Fixed image back option with html color names that start with 'light' don't apply #4073
- Fixed
$page->prevUnlisted()returns wrong collection item #4086 - Fixed redirects in fetch requests to non-fiber resources: #4084
- No longer uses POST requests for dropdowns: #4083
- Date field value gets properly saved inside structure fields when hitting Cmd+S
- Calendar dropdown of date fields closes properly inside a structure field when focussing another field
- Throws proper error when passing not an object as
stepprop to inputs - Fixed issue when only displaying year in date field
- Fixed issue with storing seconds in date/time fields
- Fixed timezone handling, removed introduction of UTC timezone pinning
panel.faviconoption now supports single string as value
return [
'panel' => [
'favicon' => 'assets/favicon.ico'
]
];- Fixed passing null parameters in YAML parser to avoid deprecation warnings in PHP 8.1
♻️ Refactoring
- Explicit CSS data attr selectors for styling #4027
- Use https://vitest.dev for JS unit tests #4064
- Use more PHP arrow functions where it makes sense #4028
- Tweaks for
$helpersand their unit tests #4057 - Update
composer.jsonto Composer API 2.2 #4066 - Refactored Fiber class for better testability
- Removed outdated wait-on dependency #4094
- Refactored Spyc YAML parser
- Removed
mustangostang/spycrepository from composer - Moved
Spycclass into/dependencies - Removed
spyc_load(),spyc_load_file(),spyc_dump()functions - Removed enabling from command line
- Added more PHP unit tests
- Removed