The next Publii beta, version 0.17.4, has been released, and as always there's a lot of cool new features to try out. URLs has been a big focus this month, with pretty URLs and prefixes added. We've also got plenty of help for theme developers, with in-depth Developer Documentation now up on the main Publii site, and a new Starter theme that will give developers a headstart on making their own themes.
Before we dive in and go into more detail about all the little features and fixes added in this beta, remember that if you'd rather just play around with the updated Publii you can simply download the updated executable directly on the Publii frontpage. Run the install package and it'll automatically detect your current install and update as necessary. With that said, let's look at what's on offer this time around!
There's certainly something to be said for aesthetics in URLs; sure, it's possible for sites to have URLs that are just strings of characters and users will still be able to see the content, but a nicely-structured URL can make navigation easier, and help visitors find their way back to or share their favorite articles. Publii has always been good with its URL structure, using a clear hierarchy that's instantly understandable and avoids clutter.
Not that there couldn't be improvements, and the latest version of Publii includes support for pretty URLs, so your site URLs will look even better. What are pretty URLs? Despite what the name suggests, we're not getting your URLs cleaned up ready for a night on the town! It's simply the removal of uglier elements of the URL, specifically, the .html that you'll see at the end.
While this might seem like a minor change, the main reason for adding it is because pretty URLs have a direct impact on SEO, so users that want to maximize their search engine visibility will appreciate the performance benefits, as well as the aesthetics, that this option provides.
Author and Tag page URL prefixes
Pretty URLs aren't the only bit of URL manipulation that's been added in this release; there's also the addition of Author and Tag page prefixes. In the default Publii setup, each tag page will be in its own section of your site; for example, if you have a tag called "news", then the URL of that tag page will be www.example.com/news/. With prefixes, you can now have that tag page have an additional layer.
If the tag page prefix is set simply as tags, then the new URL for your news tag page will be www.example.com/tags/news/. This way you can nest your author and tag page URLs to make them more consistent.
We're still rolling with the URLs, and despite adding pretty URLs and prefixes for tag and author pages, there's still one more thing that needed to be sorted out; the pagination name. In prior versions of Publii when paginating your frontpage articles (that is, splitting them into multiple numbered pages that users can click to move between them), the URL would automatically use "page" to indicate the pagination in the URL; so if we use the "news" example from above, the first page of the news tag page would be www.example.com/news/, but after clicking to the next page of results the URL would be www.example.com/news/page/2.
In the new beta it's now possible to rename the page prefix to whatever string you wish; this way if your site is in a language other than English you can match the pagination name to it, making URLs fully-translatable, and give even more control over your SEO performance.
URL settings, 404 and search page file rename
With these new URL options, we didn't want them to be difficult to find, so a new URL settings section has been added to the Site Settings area of the Publii interface, making it easy to find and adjust your URLs to your liking. You'll find the URL tab under the Advanced options header in the Settings tab, with the toggle for pretty URLs, pagination naming, plus tag and author prefixes.
This section boasts two additional options we haven't covered yet; the ability to rename search and error page filenames. When a theme includes support for error and search pages a general file will be automatically generated with a default filename like search.html. With this new option, you can modify the filename to your own preference within Publii; no need to open your Publii site folder to manually edit.
Alright, so this one isn't actually a new 'feature' in Publii, but it's still very important for those of you who have been interested in making your own themes for Publii. We've recently released the dev documentation for Publii, covering how themes are built (handlebars!), available helpers, introductory guides to setting up your files, and plenty of tips and tricks to get the most out of your experience.
Want to check it out? Head over to the Publii Dev page to have a look, or click the Dev option in the main menu at the top of this page!
New Starter Theme
It's not just the documentation that's been added for budding theme developers; now you can download and use a new theme, Starter. Designed to serve as an introduction to the world of Publii development, Starter can of course be used as a simple basic theme for any Publii user.
For those wanting to build something unique though, you'll find a solid ground to build from, with commented source files that will help you get to grips with the smaller features and benefits that Publii has to offer.
Google Custom Search support
Sometimes a site visitor just knows what they're looking for; maybe it's a specific article to show a friend, or a particular subject that isn't covered by a tag. In these cases, being able to search a website's content independently of the prescribed tags or other navigation options can be a boon. To that end, the latest Publii beta includes support for Google Custom Search, allowing you to utilize Google's functionality to provide a fast, accurate search service.
Search page support added to themes
With support for Google Custom Search now added, you'll need a search page that matches your site aesthetic; that's why we've added search page support into our themes so that, just like the previously-added 404 pages, you can create your very own search page.
This support will go well when used in conjunction with Google Custom Search, though of course if you've got the technical know-how you can use whichever search service suits your needs!
Log Viewer added
Sometimes, the unexpected will happen. Something will go wrong on your site, or you'll run into an issue with syncing. When it comes to troubleshooting, the more information you can get access to quickly and easily, the better.
To help you stay on top of things, a new Log Viewer has been added to the Tools section of Publii, providing detailed logs of any sync errors, connection logs and tracking which files have been modified and will be modified or deleted on the next sync. It won't fix your issues for you, but it will give you enough insight that you'll be able to head in the right direction!
Over the last few Publii betas we've seen many different deployment options supported; originally only supporting FTP, Publii now boasts support for Amazon S3, Netlify, Google Cloud and Github Pages too, making it remarkably flexible in the number of available ways to get your site online.
Despite all this support added for various services, there's still one more area that our more advanced users needed that goes in the opposite direction; manual deployment. Not all users want Publii to connect to their server on each sync; some would rather manually move the files to protect security, or to allow deployment to multiple platforms.
To reflect this need Publii now includes a Manual deployment option in the list of protocols available in the server configuration screen; users can choose to output the uncompressed site folder, or wrap them up in a zip or tar file. Once set, any sync operation will generate a new output in the site folder, and the option given to view the files in your file explorer. Quick and easy!
Developer additions: new objects, variables, and post editor override
With the dev documentation being made available there's bound to be more users diving in and getting to know the various global variables that can be used to build your theme. So now's a good a time as any to expand the available tools with a new object and two global variables.
The new object, @website.contentStructure, allows you to work with the content data from your website, whilst the two new variables are specifically for working with the URLs to your search and error pages; @website.searchURL and @website.errorURL. Small, but important additions for the development side of Publii.
Finally, the ability to override the Post Editor configuration has been added to the config directory; now users can control which options will appear in the post configuration section; perfect if you are deploying Publii for a customer.
Despite the impressive amount of new features added for this release, the Publii team have still found time to make some nice little improvements and optimizations that will improve your day-to-day working with the app. This time around we've got the following additions:
- The post search field is now saved when the post editor is opened, so if you've accidentally opened the wrong post you won't need to run the search again when the editor is closed.
- Modified related posts generation to remove random elements, generating fewer files to sync.
- Improved the process for moving page data between folders; Publii now only moves websites from the input folder instead of all files and folders.
- Added multiple small optimizations to the rendering engine.
- Unified the icons in the Tools section and post sidebar for better visual parity.
- Multiple small changes under the hood to improve stability and performance.
- Added support for CSS Grid in the preview window.
- Improved the CSS minification process.
And of course, with the enhancements comes a few little fixes to clean up some of the small issues that you might run into in the Publii app. This release includes the following fixes:
- Fixed bug with post count in the author view after changing the post author.
- Fixed bug with incorrect content with @pagination.context.
- Fixed issue with unresponsive backup location field.
- Fixed issue with some file/directory selection fields which only worked on first interaction.
- Fixed issue with validation of AMP pages when Google Analytics Tracking ID was provided.
- Fixed issue with Sitemap duplicate entry
- Fixed issue with rendering of additional templates
That's the lot for this release; with plenty of new features it's been quite a busy lead-up to this latest beta, but we promise to keep on working hard on making Publii even better! Don't forget that you can drop-in to our Community Hub if you want to suggest any new features you'd like to see in the future, ask a question about Publii, report bugs, or just give us a bit of feedback on what you think of our app; we always like to hear from our users as they drive our development path. In the meantime, have fun with this release, and we'll be back with more updates soon.