v0.16.0
This release changes the way Kobweb generates multi-word parts of routes (e.g. example-page
instead of examplepage
).
This release also includes a handful of quality-of-life features and under-the-hood improvements.
Important
Planning to upgrade? Review instructions in the README.
Markdown
- Introduced the new
kobweb.markdown.process
callback which you can set to iterate over all markdown files in your project.- This feature is very useful, for example, if you want to create a listing file that enumerates all your other markdown posts.
- Please see the added README section for more information.
Backend
- You can now add custom headers into your response.
Frontend
- 🚨 Camel-case packages and filenames now generate hyphenated routes!
- This is recommended for SEO, and many users have been using route overrides to do this. Hopefully the defaults are a lot more sensible now.
- You can review Page and Package docs for the latest information.
- Kobweb will still work with old sites, as for now it will intercept links to legacy style routes and handle them automatically. However....
- You should still consider auditing your site and disabling these legacy route redirects. The README provides a simple list of steps to follow to do this.
- We now support declaring Kobweb Server Plugin dependencies in a more Gradle-idiomatic way, using the
dependencies
block.- The README has been updated with a new section
- Added support for the
user-valid
psuedo-class - Updated the kotlinx.html dependency to its recently released 0.11.0 version
Gradle
- Tons of cleanup and tweaking which should make the Kobweb Gradle Plugins play more friendly with things like the Gradle configuration cache. Hopefully this will slightly improve compile times.
KSP
- Fixed our KSP logic so it now properly implements multi-round processing.
- This could matter to you if are writing your own KSP processors that generate Kobweb code.
Worker
- Changed the way to specify a worker name in a Kobweb worker, which is now more consistent with Kobweb applications.
configAsKobwebWorker("workername")
, which is symmetrical to theconfigAsKobwebApplication("appname")
method we all know and love
- If a worker fails to serialize / deserialize its input / output arguments, the dev console now prints out a useful warning message instead of swallowing it quietly.
Thanks to our contributors!! 🎉 🎉 🎉
- @kjeller took on the markdown feature discussed in these release notes. They also helped clean up some badly indented formatting in generated font code.
- @Remblej provided the feedback and the initial code draft for custom headers in backend responses.
We are always grateful to community support. Thanks so much for your help!
Full Changelog: v0.15.4...v0.16.0