A new Publii release, version 0.37, is now up for download
It's been quite a crazy year so far; we hope that all of you have been well both physically and mentally during the frequent lockdowns and other restrictions that have been in place across the world. Things are slowly getting back to normal where we are, so we're getting back into the update groove with a brand new Publii release, v.0.37.
There's some tasty new features for both regular users and those with a more development-focused bent, including a new Tags page that gives your visitors an easy way to browse the articles they prefer, and a dev-focused Supported Features option that allows fine-tuning of which pages are generated and which options are available in your theme.
It's a lot to get through, so if you'd rather just jump in and give it a go, as always you can head over to the Publii Download Page and grab the latest release. But if you'd prefer to know what you're getting before updating, read on!
The Tags Page
Publii already has Tag Pages, which display all of the articles from a particular tag. But with this release you can generate a new Tags Page. This page lists all the available tags and, depending on the theme that you are using, can display additional information such as tag names, the number of posts in each tag, a tag featured image or a tag description.
With this page, your visitors can easily browse through your available tags to find the content that interests them.
New Functionalities for Tag and Author Pages
You may have noticed that we mentioned a Tag Featured Image in the last section and thought to yourself "Hang on, you can't add a featured image to the tag page". Well, now you can, since another new feature in this release is the ability to add Featured Images to your Tag and Author pages, which will be displayed as the cover image.
Hide Tag Option
That's not all; a Hide Tag option allows you to hide a tag from all post listings and individual post pages. Importantly, the tag page will also not be rendered. With this, you may sort posts into tags for your own use without worrying about users stumbling across them. You could also use them for more complex tasks such as, for example, filling a hidden tag with posts that contain only a cover image, then displaying the previews of the tag's posts as slides on the front page (e.g. {{#getPostsByTags}} helper).
Author Website Field
For author pages, an Author Website field has been added to the options so that a link to the author's website or blog can be displayed on the author page.
On a more general note, the editing UI for tag and author pages has been rebuilt to function more like the sidebar used in the post editing mode, and a special Preview Page option has been added for both the tag and author pages so that you can see how these pages will look on the live site without needing to go through the full page rendering process, saving you a bit of time!
Our existing themes have been updated to support the majority of these new features, however do be aware that not all of these features are available on every theme; in some cases, the styling or design of the theme means that adding e.g. featured images to a tag or author page is not really possible. Thankfully, you'll be able to know if your theme supports it thanks to our changes on the development-focused side of things...
Supported Features
As well as the additions for the front-facing side of your site, we've also added some cool features for developers. Chief among these additions is the Supported Features option. Within the config.json file is a new section where you may define whether your theme supports the standard features included with Publii, such as the Search Page, Error Page, Cover Images for Tag Pages etc...
"supportedFeatures": {
"blockEditor": true,
"tagsList": true,
"tagImages": true,
"authorImages": false,
"searchPage": true,
"errorPage": true
},
Should any of these options be set as unsupported, a message will be displayed to the user advising them that a particular option cannot be used in the current theme, so they can be clear as to what options are available to them in a specific theme.
Disable Tag and Author Pages
Following on from the Supported Features functionality, this new release also includes the ability to disable the creation of Tag and Author pages by Publii. Previously, these pages would be generated automatically no matter what, but with this new option you can create a more one-page-style website without unnecessary fluff. To disable these pages, you need only add the following text to the render section of the config.json file:
"createTagPages": false,
"createAuthorPages": false,
Override Renderer Options
We're spending a lot of time in the config.json in this update! Another great addition is that it's now possible to override the renderer options with the theme customConfig options. With this, we can add options to the theme settings that were previously only available by directly modifying the config.json file. For example, in this release we've added a Specify the number of related posts option in almost all of the themes. In earlier releases the only way you could alter this value was by modifying the config.json directly, but with a few changes the option can now appear in the theme settings.
How does it work? It's really quite simple (but mildly technical, so get your dev-hats on!). The custom option when added to the config.json file must use the same name as the render option e.g. the render option that controls how many related posts are displayed is named relatedPostsNumber, so we simply add an option that uses the same name to the config.json file and specify the usual parameters for the option such as the group, label, type and default value, and it's ready to go.
{
"name": "relatedPostsNumber",
"label": "Related post",
"group": "Layout",
"note": "Specify the number of related posts to show. Zero '0' means no posts.",
"value": "4",
"type": "text"
},
Asset Override
Staying with the developer-focused options, we've added yet another override. In this case, it's the possibility to override assets that didn't exist in the original theme files. Prior to this update it was only possible to override files that existed in the original theme, but now you can add any file to the /assets/ folder and use it in your theme.
Relative URLs Re-Enabled
The Relative URLs option in the server settings has been re-enabled. We had run into some issues with this feature and thus had disabled it in the last update, but now it's back and working as it should.
Computed Options
There's still a little bit more for developers in this update. Computed Options are options that a developer can create that adjusts its value depending on the values set for other options. For example, if a developer wants to override a renderer function based on the option the user sets, he can do so in the computed-options.js file, rather than creating additional options in the UI that require additional input from the users.
For information and an example of this functionality, you can check out this GitHub thread. With all these additions, we can say that developers are being well-served in this release!
Other Improvements
As well as the new features, there's also a bundle of other improvements coming in this release, including:
- All new websites will use UUID, which will solve the issue of passwords being lost after a website name change.
- An option has been added to disable the link to the privacy policy in the cookie banner.
- Added option to the GitHub upload to skip using the rate limits API.
- Redesigned the sidebars for tag and author forms.
- Added an "operator" parameter in the getPostsByTags helper.
- Changed the "Domain" field to "Website URL" in the server settings.
- Improved ordering in the languages list.
- Added detection for invalid author menu links in the menu creator.
- Added notifications that are dependent on the version of Publii used.
- Added support for copying entire directories from the /root-files/ directory.
- Improved iframe output - removed unnecessary paragraphs around the embed code.
Bugfixes
Do you need bugfixes? Because we've got bugfixes. A whole stack of them!
- Fixed a bug with loading image dimensions in the WYSIWYG editor popup
- Fixed issue with menu item validation.
- Fixed issue with Ctrl+A closing the app on Linux when using some keyboard layouts.
- Fixed issue with protocol-less URLs for videos in the WYSIWYG editor.
- Fixed issue with loading menus in the post preview.
- Fixed issue with rendering scripts in the HTML block of the block editor.
- Fixed issue with re-enabling CSS compression.
- Fixed "File already exists" error appearing during rendering.
- Fixed issue with renderer options working in reverse such as includeFeaturedInPosts.
- Fixed issue with incorrect last update dates in RSS feeds.
- Fixed issue with handling of external image URLs in the WYSIWYG editor.
- Fixed UI issue with the search function in the post source code view.
- Fixed unreachable "OK" button in the gallery popup UI.
- Fixed issue regarding calculation of image sizes in some cases.
- Fixed issue with UI scaling on Windows.
- Fixed issues with quotation marks in meta descriptions
Phew, that's quite an update! But there's still more features on the horizon, and we're looking forward to bringing more updates your way in the future. Before we go, we'd like to say a big "Thank you!" to everyone that has continued to use and support Publii during these tumultous times; we're very grateful for your support and rest assured, we'll be doing all we can to keep improving Publii.
Join in the development on the Publii on our GitHub repository, or drop in to the Publii community hub and let us know what you'd like to see in the future!