Fixed useOEmbed getting stuck in a pending state, which could cause video/audio thumbnail loading to stall indefinitely. evergreen#523
Fixed link styling in the footer block copyright.
Fixed long tags breaking the search results layout. evergreen#505
Link/Button, Box, LeftRight, Nav, Tag, HtmlProse, IconButton, Modal, and more). Babel-powered styled-components SSR is now completely eliminated, reducing bundle complexity and improving CSS delivery.New thumbnail prioritization when oEmbed is involved, especially so that administrators can override the oEmbed-provided thumbnail:
CardCoverImage)CoverImage: {url: ...})CoverImage: {default: ...})New hack lazyImages for debugging problems with browse blocks. The value can be auto (whatever Evergreen would do normally, which may change with time and technology), compat (custom JS lazy loader), native (browser-provided lazy-loading), or eager (load immediately rather than lazily).
Nav links can be configured to open in a new tab, and receive a decorative indicator for the user.
When oEmbed seems be available, but there is no thumbnail provided, fall back properly to the default value configured in CoverImage.
Don't call the server's oembed-proxy when oEmbedUrl is plainly available in the meta-object JSON response. This avoids unnecessary API calls, and speeds up the display, for videos even when hasOEmbed isn't available.
lazyImages=compat which didn't actually work.🎉 new hack lazyImages for debugging problems with browse blocks. The value can be auto (whatever Evergreen would do normally, which may change with time and technology), compat (custom JS lazy loader), native (browser-provided lazy-loading), or eager (load immediately rather than lazily).
🎉 new hack thumbnailSize for adjusting the size we request for thumbnails across the board. The default at time of writing is 900. In experiments, changing this value did not improve things much. Adjusting the lazy loader and/or uploading custom cover images was more effective.
The image block has many new features, including max width/height, scaling, position and focus, cover image support, padding and drop shadow. evergreen#506
Enabled native lazy image loading on Firefox (other browsers already supported).
The container CSS class can now be used in classic blocks to match the Evergreen site container.
The date property in the header block was broken and is now fixed. evergreen#506
The image block will no longer show a popup alert for a missing image, since it doesn't help the situation to tell the user.
When signing in using the SSO redirect, Evergreen now passes successUrl and failureUrl so the server can redirect appropriately. This is a new SSO implementation that most sites are not using yet, and the server portion of the fix is not finished yet. cubchicken#1097
The debug view styling is no longer broken. evergreen#508
Fixed a bug in browse block infinite scroll that prevented it from loading more items when reaching the end of the list.
Fixed two bugs in the authentication config that caused Evergreen to ignore customLoginUrl, thereby preventing login by SSO in some cases.
Sign In block can be configured to avoid auto-focus, for sites that have multiple sign-in options available on a page. cubchicken#1035
For testing purposes, pick your Evergreen version with ?quickstart-version=XXX. Only applies to the current page, and doesn't stick to the session, but this is a quick way to check whether a newer or older version of Evergreen works differently from the current version.
/api/sso-redirect in v3.37.0, we lost the ability to configure the Sign In block for Tizra auth if the global configuration used customLoginUrl. That problem is fixed in this release by separating the auth types that were previously conflated, with migrations to properly handle older configs. cubchicken#1036?quickstart-version=XXX/api/sso-redirect endpoint. This deprecates using the global header to set window.tizra.customLoginUrlMeta-type validation was filtering out valid meta-types, specifically those that are omitted from the search-types API response. Change the validation approach so that, for example, VirtualCollectionInstance isn't dropped. cubchicken#1028
Restored the option to sort browse blocks by date published.
When ?debug enabled, call search API with check-syntax=true to catch errors.
Simplify query args for search and browse, so the URL bar is easier for humans to read.
When the browse block encounters an invalid meta-type in the configuration, remove it from the search API call rather than sending it. This is especially for browse block configs that mention a Video meta-type inherited from the design, on a site where the Video meta-type doesn't exist. Previously it was a harmless error, because we specified each meta-type separately: {"any":["metaType:Book","metaType:Video"]} but with the optimizations in v3.32.2, the call becomes {"any":["metaType:Book;Video"]} which invalidates the entire search term. cubchicken#1012
Repaired the long-broken filtered browse block animations.
PdfPage "Free stuffs" 🙄optimizeHitCounts=safe or disabled with optimizeHitCounts=none in QuickstartHacks.optimizeHitCounts=safe or disabled with optimizeHitCounts=none.xOptimizeHitCounts=safe or xOptimizeHitCounts=fulluseQueryWork around bug in React 19 where JS in Markdown block could be broken if it attaches click handlers to elements in DOM. evergreen#464
Fix problem where cart badge could show, with nothing in the cart cubchicken#859
?debug feature to show live form data inline for Ariakit-based formsFix bug where Evergreen would fail to report signed in for SSO until the page was manually reloaded. cubchicken#859
If bookshelf is configured to show collections, then don't display any indirectly-licensed content, so that we aren't showing both collections and their contents. This is especially for sites with a lot of free member content, where the bookshelf becomes effectively unusable. evergreen#454
Improve accordion rendering and open/close animation.
Fix sporadic failure to render YouTube responsively.
Add coverFallback hack to check for 1.jpg. This is a workaround for sites where the CoverImage default value isn't working. When coverFallback appears in QuickstartHacks, then Evergreen will fall back to its own check for 1.jpg if the server returns blank CoverImage. cubchicken#764
Enable remote cart integration via AddToCartLinkProp. When this property is set on an offer, referring to a property on the meta-object, then Evergreen will use that property to link the "Add to Bag" button to the remote cart, instead of using the Tizra-provided cart. evergreen#447
Display session errors in a modal. Previously there could be cases where an SSO would fail to authenticate, but there was no mechanism for the server to supply this information to Evergreen. With this new error-handling functionality, SSO errors and similar will be displayed to the user. evergreen#445
Fix the Search Within block when the current URL doesn't have trailing slash. evergreen#457
Prevent oEmbed fetch from canceling itself. This was causing strange flashing in search results and browse blocks as the item moved between on-screen and off-screen. evergreen#451
Allow browse limit to apply on collection home. In theory, this would seldom be desired, since collection home should display all of the items in a collection, but there are cases where a custom setup calls for applying a limit, so we trust the administrator to know what they're doing. evergreen#449
<button> and paragraphcoverFallback hack to check for 1.jpg cubchicken#764Markdown editor
Markdown render
<t-image>, <t-cover>, and <t-player>oEmbed
Offers evergreen#430
<t-image>, <t-cover>, and <t-video>user.props.CheckoutName in places where we need an unambiguous user display (contrast to user.props.ProfileName for informal, shortened contexts)-test, so that admin can sign in and out of test siteuser.props.CheckoutName in places where we need an unambiguous user display (contrast to user.props.ProfileName for informal, shortened contexts)window.IS_STORYBOOK-test, so that admin can sign in and out of test sitefile:/// img conversion; don't show edit link modal when selection speans further than the link; and unbullet one list item, not the whole list)QuickstartHacks=boost) evergreen#406{"defaultOpen": false} evergreen#411QuickstartHacks=lexical)QuickstartHacks=boost for boost feature{"defaultOpen": false} evergreen#411QuickstartHacks=lexicalnobr feature flag)nobr hack if it causes troubleby even with zero authors evergreen#399by even with zero authors evergreen#399QuickstartHacks=postQuickstartHacks=postsearchParam-terms= to s= for GA4 cubchicken#648searchParam-terms= to s= for GA4 cubchicken#648searchParam-terms= to s= for GA4, but there was a bug, so I marked this BAD?debug?debug[#ftl] directive for SMACNA[#ftl] directive for SMACNA evergreen#386CardAuthors;Editors;Authors to choose the first that has content for a browse item.CardAuthors;Editors;Authors to choose the first that has content for a browse item.nestedNav hack.nestedNav hack.BrowseFilter1 or BrowseFilter2 value with a minus sign, for example -Decade evergreen#336nestedNav in QuickstartHacks, then configure with JSON. Will be UI-configurable in the future.BrowseFilter1 or BrowseFilter2 value with a minus sign, for example -Decade evergreen#336🗓️ Previously released UNSTABLE on as a series starting on 2022-06-30 with v3.5.0
🎉 Image block can be configured with a link URL evergreen#301
🎉 Add support for non-USD currencies in offers and cart. evergreen#343
🚀 Improve rendering times (especially avoiding extra rendering related to hydration of server-rendered content)
🚀 Improve SSR performance by disabling SSR for the Browse block (reduces typical home page rendering by 70%)
🔧 Fix property-based exercise action labels and destinations. evergreen#339
🔧 Don't mis-report "Added to Cart" for distributive offers. evergreen#337
🔧 Omit Search Within block from palettes. This block is still a work in progress, and was unintentionally included in palettes in the production build.
🔧 Fix SSR issues from React upgrade (polyfill for TextEncoder in GraalVM, and hydration mismatches in the Nav block)
🔧 Fix svg logo from disappearing on Firefox. #328
🔧 Run embedded scripts in customer Markdown and HTML, even when rendered client-side without SSR. evergreen#341
🐞 Add tools for investigating and debugging SSR, ?quickstart-ssr=on and ?quickstart-ssr=off as well as specific blocks, for example ?quickstart-ssr=nav,content-cover. Client-side rendering can also be disabled with ?quickstart-csr=off to see the pure server-rendered output. These flags do not stick in the browser or session, they are per-request only. (Technically these debugging features are not in Evergreen, but rather were added to the server at the same time as the v3.5.1 unstable release.)
🎁 Update to React 18
?quickstart-ssr=on and ?quickstart-ssr=off as well as specific blocks, for example ?quickstart-ssr=nav,content-cover. Client-side rendering can also be disabled with ?quickstart-csr=off to see the pure server-rendered output. These flags do not stick in the browser or session, they are per-request only. (Technically these debugging features are not in Evergreen v3.5.1, but rather were added to the server at the same time as the release.)🗓️ Previously released UNSTABLE on 2022-06-13.
🔧 Stay in checkout after sign in, instead of returning to the cart. This change also makes the browser back and forward buttons work between the cart and checkout.
🔧 Don't show Add to Cart on the Header Block when the offer is already in the cart. Previously, this only worked immediately after adding, now it also works when loading the detail page again later. #337
🧐 Prevent long options from overlapping the dropdown arrow in the Select component.
🚀 Defer rendering of ToC component in SSR, so that large tables of contents don't slow down initial page delivery. #302
🚀 Defer rendering of Search component in SSR, so that we get page display while the search is running and results are fetching.
🔧 Fix the unclickable area in the Select dropdown.
🎁 Switch from yarn to pnpm, update storybook, update msw, fix storybook/msw not working in Chrome.
🎉 Stable release of new e-commerce features: offers in Header Block, new Cart Block with support for checkout via PayPal, and cart indicator in Nav Block.
🎉 Enable login via remoteAuthenticationAgent, with global config and block-local overrides.
🔧 Omit excerpts from the bookshelf that are licensed indirectly by a licensed book. #323
🔧 Enable read online button for Excerpt ToC. This came as a byproduct of the overall Header Block rework. #321
🔧 Enable keyword checklist for browse filters and details block #317
🔧 Move browse heading above filters #318
🔧 Only hide the Markdown Block if it's truly empty after Freemarker interpolation. This avoids hiding a block that consists mainly of a script. #307
🔧 Fixed Markdown block to refrain from hiding if there's any HTML content, even if it doesn't appear to be visible. Especially for embeds. #307
🔧 Fixed Markdown block to honor alignment option.
🔧 Improve styling of buttons in customer HTML, including secondary button styling when there's more than one button in a parent element. #284
remoteAuthenticationAgent, with global config and block-local overrides.🔧 Fixed global config migrations, which sometimes meant that various global config UI didn't appear (bookshelf, redemptions, etc) hierarchy, and also fixed them to be clickable again. #305
🔧 Handle already-redeemed codes as success, so the user doesn't get stuck on the redemptions page with an error message. This especially applies to redemption links, because users might click them repeatedly from email. #305
🔧 Fixed rendering issues in search result "found in" clickable hierarchy, and also fixed them to be clickable again. #304
🔧 Table of Contents now uses custom URL set on the meta-object. #303
🎉 Freemarker interpolation works in all long-form (Markdown) text inputs, instead of a limited set.
🎁 Replaced https://create-react-app.dev/[Create React App] with https://vitejs.dev/[Vite] for modular builds.
🔧 Browse block on collection home displays all the meta-types included in the collection, excluding PdfPage. #238 gh#frontend/280
🎉 Property display names can specify plural spelling with "#" separator, for example "Goose#Geese", as a more powerful alternative to the existing "Dog(s)" syntax.
🎉 Use the new access API instead of the crutch in the global header. Any setting of canAccessViews in the global header is now ignored and can be removed.
🔧 Validate successUrl as a host-relative URL (starts with a slash) before following. This wasn't a significant issue on Evergreen because we never follow successUrl without the user clicking a button.
🔧 Don't shift dates to local timezone, which would lose a day in the Western Hemisphere. #300
🔧 Restore message on bookshelf for user not signed in, regression in v3.1.0. #299
canAccessViews in the global header is now ignored and can be removed.successUrl as a host-relative URL (starts with a slash) before following. This wasn't a significant issue on Evergreen because we never follow successUrl without the user clicking a button.🎉 Redemption Code block guide
🎉 Bookshelf block features
🎉 Nav links can be added dynamically in the admin, and reordered by dragging.
🧐 Sign In, Password Reset, and Register User blocks use a simpler presentation for better support of custom messaging. #286
?redemptionCode=XXX in URL?successUrl=/XXX in URL but it should be unnecessary in most cases--the block will detect what licenses have been added, and redirect to the most sensible place: Bookshelf for multiple items, or detail page for an individual item./login to /signin. The former is reserved in Tizra and can't be used for static pages.successUrl and default to / if unspecified, instead of remaining on the current page. #287?backToSearch for reader links, as it worked in Quickstart v2. #292#29f or #2198fesuccessUrl if given. This effectively means that either the block or modal approach returns to the desired content after sign-in.