Skip to content

v0.16.0

Compare
Choose a tag to compare
@bitspittle bitspittle released this 07 Feb 19:05

This release changes the way Kobweb generates multi-word parts of routes (e.g. example-page instead of examplepage).

⚠️ This provides much more standard, cleaner URLs (that are additionally more SEO friendly). This may end up being a little bit of work to some users, but a lot of care went in to make sure old sites will not break. This felt like a significant enough change that we decided to bump up the "major" version number. You can read more about legacy routes here.

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.
  • 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 the configAsKobwebApplication("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