🚀 CMS improvements, dynamic page routes, and more
Happy belated new year! Wow it’s the end of February already. We’ve been busy already shipping you new features. Here’s what we’ve been working on.
🖋️ Enhanced CMS capabilities
New Rich Text Editor: We're rolling out a new rich text editor for CMS, built on top of TinyMCE. The new editor includes new features like tables and code snippets, and generally has much better compatibility with html. It even allows you to edit the underlying HTML directly in a pinch!
CMS entry preview: You can now specify a preview URL for your CMS entries. This enables a “Preview” link that shows up when your content editors are editing a CMS entry, allowing them to quickly see what the CMS draft would look like in the context of your real site. You can configure this from the three-dot menu on the model page. Read more about setting this up.
CMS publish webhooks: You can now specify webhooks that are triggered when a CMS entry is published, allowing deeper integration with your stack.
Revert to last published: From an entry’s three-dot menu, you can now choose to revert to the last published version, blowing away your current draft.
Use Plasmic theme with CMS Entry Field: When rendering CMS content using the CMS Entry Field component, you can now toggle on “Use Plasmic tag styles” to apply the project’s default theme styles to tags in rich text content.
📃 Dynamic page routes
Dynamic page routes are now more flexible than ever. You can now specify catch-all path parameters to capture the rest of a path, using the syntax [...rest]
.
For example, suppose you have a URL like /products/mens/tshirts
and you want to capture everything after /products
. You can specify a route /products/[...slug]
and slug would be an array of strings with the value ["mens", "tshirts"]
.
We’ve also added the following new global variables available in dynamic values:
$ctx.pagePath which is a string like
/products/mens/tshirts
$ctx.pageRoute which is a string like
/products/[...slug]
🌎 Global Actions
Need to run some custom code in interactions, without any limits? Now you can, by registering global actions in a global context.
Since global actions are defined in your codebase, you can use any JavaScript APIs and libraries. Common use cases include storing user authentication data in cookies or local storage.
🔀 Improved branching UI for Change Logs
We’re announcing an upgrade to the user interface for change logs when requesting a branch merge. Now, tracking changes and updates during the merge process is clearer and more intuitive than ever before!
Note: Branching is exclusively available to our Enterprise customers upon request. If you're an Enterprise user, don't hesitate to reach out and take advantage of this powerful feature.
⚡️ ️Accelerate Program
We’re introducing a new, limited-time program designed to accelerate your Plasmic projects. You can apply to get hands-on help from the Plasmic team to get your marketing site or e-commerce storefront off the ground! The primary goal of this program is for us to help users with Plasmic implementations while getting hands-on experience with how Plasmic can be used in real world projects. More info available here.
🔥 Even more features
Keyboard shortcuts: Did you know you can see all shortcuts by typing the question mark (?) symbol? Now you can also search for shortcuts there!
Expand/collapse outline: In the outline left tab, you can now quickly expand and collapse all elements.
Draggable component props: In the component data left tab, you can now re-order props.
New Components:
Lottie Async - display Lottie animations by loading them asynchronously, so they don’t impact initial page size
Countdown - display a countdown
🤝 Join our community
Stay in the loop and connect with fellow creators. Join our forum at forum.plasmic.app and Slack at plasmic.app/slack.