With this release, we bump the version up into the 0.9.x range to indicate that we're getting confident that Kobweb is starting to be foundationally solid. While there is always more to do, I feel like Kobweb at this point can make real sites using what's already there.
With 0.9.x, it's expected that all the major features for 1.0 are in place, the API shouldn't change too drastically moving forward 🤞, and we on the dev team can start to focus on quality of life issues, API gaps, bug fixes, and actually creating websites with this thing.
- Breaking change The
PageContext.markdownfield is now nullable and will be null if requested on a page that was not generated from a markdown file. MarkdownContextnow includes a path to the file that it was generated from (so, for example, you could link to the github page directly if you wanted to)- Package mapping is now supported.
- This means you can map a Java / Kotlin package, e.g.
_2022, to a more URL friendly value, e.g.2022, using aPackageMappingannotation. - See the README for more details.
- Markdown files in folders that can't be converted directly to packages will automatically handle adding a mapping for you, e.g.
resources/markdown/blog/2022/Example.mdwill generatesrc/pages/blog/_2022/Example.ktbut_2022will be mapped back to2022automatically.
- This means you can map a Java / Kotlin package, e.g.
Pageroute overriding is now available so you don't have to always accept the default of using the current filename / package.- See the README for more details.
- Dynamic routes are now supported.
- You can set up routes so that values can come from the URL itself rather than query parameters, e.g.
users/{user}/posts/{post}instead ofposts?user=...&post=... - See the README for more details
- You can set up routes so that values can come from the URL itself rather than query parameters, e.g.