Orchid v0.20.0 Release Notes
Release Date: 2020-03-30 // about 4 years ago-
- ๐ New Snippets plugin allows you to lookup and embed snippets from code, files, and even external webpages!
- ๐ Improvements to Admin Panel styling. Forms and snippets located during the site build are care listed and can be previewed in the admin panel.
- ๐ Allows Forms to be embedded with a new
form
tag, instead of only as Components as before. See docshere - 0๏ธโฃ Replaces default accordion markup with details/summary tag for best usage in all themes
- ๐ Tabbed TemplateTags can now be rendered dynamically! You can now use loops and conditionals to add individual tabs to the body of tabbed tags. See docs here.
- ๐ Both the base URL and your theme can now be set in
config.yml
, instead of needing to be set in your Gradle or Maven build scripts. See docs here.
๐ฅ Breaking Changes
๐ This release contains no breaking changes or deprecations of public, end-user features. Read on for important changes
There have been some minor changes to the internal APIs. Most notable is that the
ModularList
primary constructor no longer accepts an injectedOrchidContext
. The context should instead be provided lazily when calling.get()
to get the modular items from the list. In addition, I'm working on removing the requirement of anOrchidContext
when creatingOrchidReference
objects. While it's still there for now, many of its public methods, likegetServerPath()
andtoJSON()
, andtoString()
, must be provided with a context when called instead of using the Context set in its constructor.0๏ธโฃ In addition, Orchid is getting more strict on places where a non-null
OrchidPage
must be provided.ModularPageList.get()
requires a non-null page, andTheme
s must have a page for each time it is pushed to theThemeService
withtheme.doWithCurrentPage()
. This also means that Generators do not globally set Themes any more, and it is the responsibility of the Generator to wrapcontext.render
calls withtheme.doWithCurrentPage()
using its defaultThemeRelation
. If you do not overridestartGeneration()
, this will be done automatically, but if you are overridingstartGeneration()
you must make sure to add this functionality.๐ Finally, the base URL is no longer available anytime during Orchid's lifetime. It is set at the start of each build, and thus is only available after indexing has started and when idle between builds. Attempting to get the base URL during Orchid startup will throw a NullPointerException.